[혼공챌린지 : 혼공단 9기 컴퓨터 구조+운영체제] 3주차

김진환·2023년 1월 24일
0

3주차 학습 정리

Chapter 06 : 메모리와 캐시 메모리

06-1 : RAM의 특징과 종류

RAM의 특징

RAM은 휘발성 저장 장치입니다.

  • 휘발성 저장 장치(volatile memory) : 전원을 끌 경우 저장된 내용이 사라집니다. (ex. RAM)
  • 비휘발성 저장 장치 (non-volatile memory) : 전원을 꺼도 저장된 내용이 유지됩니다. (ex. HDD, SDD, CD-ROM, USB)

RAM의 용량과 성능

RAM의 용량이 작으면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아져 실행 시간이 길어집니다.
RAM의 용량이 크면 보조기억장치에 많은 데이터를 가져와 RAM에 저장해둬 많은 프로그램을 동시에 실행하기 유리해집니다.
단, RAM 용량이 필요 이상으로 커졌을 경우에는 실행 속도가 증가하지 않습니다.

RAM의 종류

  • DRAM(Dynamic RAM) : 저장된 데이터가 시간이 지나면 점차 사라지는 RAM으로 일정 주기마다 데이터를 재활성화(다시 저장)해야 합니다.
  • SRAM(Static RAM) : 시간이 지나도 저장된 데이터가 사라지지 않고, DRAM보다 속도가 더 빠릅니다.
  • SDRAM(Synchronous Dynamic RAM) : 클럭 신호와 동기화된, 발전된 DRAM입니다. 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있는 DRAM입니다.
  • DDR SDRAM(Double Data Rate SDRAM) : 대역폭(date rate : 데이터를 주고 받는 길의 너비)을 넓혀 속도를 빠르게 만든 SDRAM입니다.
    • SDR SDRAM : Single Data Rate SDRAM 으로 일반적인 SDRAM을 뜻 합니다.
    • DDR SDRAM : SDRAM의 두 배의 대역폭, 한 클럭당 두 배의 데이터 전송이 가능합니다.
    • DDR2 SDRAM : DDR SDRAM 보다 두 배의 대역폭을 가집니다. (즉, SDR SDRAM의 네 배의 대역폭을 가집니다.)
    • DDR3 SDRAM : DDR2 SDRAM 보다 두 배의 대역폭을 가집니다. (즉, SDR SDRAM의 여덟 배 넓은 대역폭을 가집니다.)
    • DDR4 SDRAM : DDR3 SDRAM 보다 두 배의 대역폭을 가집니다. (즉, SDR SDRAM의 열여섯 배 넓은 대역폭을 가집니다.)

DRAM vs SRAM

  • DRAM : 소비 전력이 낮고, 저렴하고, 집적도가 높아 대용량 설계에 용이하여 일반적인 RAM에 사용됩니다.
  • SRAM : 소비 전력이 크고, 비싸며, 집적도가 낮아 대용량 설계에 불리합니다. 따라서 대용량이 아니고, 속도가 빨라야하는 캐시 메모리에 주로 사용됩니다.
DRAMSRAM
재활성화 여부필요함필요 없음
속도느림빠름
가격저렴함비쌈
집적도높음낮음
상대적 소비 전력적음많음
사용 용도주기억장치(RAM)캐시 메모리

06-2 : 메모리의 주소 공간

물리 주소와 논리 주소

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

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

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

메모리 보호 기법

프로그램의 논리 주소의 영역을 벗어난 명령어들은 실행 중인 프로그램이 다른 프로그램에 영향을 받을 수 있어 실행되면 안 됩니다.
따라서, 논리 주소의 영역을 벗어난 명령어를 보호하기 위해 한계 레지스터를 사용합니다.
CPU는 메모리 접근 전 접근하려는 논리 주소가 한계 레지스터보다 작은지를 항상 검사하며,
한계 레지스터보다 높은 논리 주소에 접근하려하면 인터럽트(트랩)을 발생시켜 실행을 중단합니다.

  • 한계 레지스터(limit register) : 논리 주소의 최대 크기를 저장

06-3 : 캐시 메모리

저장 장치 계층 구조

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

캐시 메모리

  • 캐시 메모리(cache memory) : CPU와 메모리 사이에 위치, 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치
    • CPU가 메모리에 접근하는 속도가 레지스터에 접근하는 속도가 느리지만, 프로그램 실행 시 메모리에 빈번히 접근해야하므로, CPU 연산 속도 대비 메모리 접근 속도가 따라가지 못해서 등장한 저장장치입니다.
    • 캐시 메모리에 CPU가 필요로 하는 데이터가 있는 경우 필요한 데이터로의 접근 시간이 감소합니다.

일반적으로 여러 개의 캐시를 사용하며, 캐시 메모리들은 CPU(코어)와 가까운 순서대로 계층을 구성합니다.

  • 캐시 메모리의 계층
    • L1(level 1) 캐시 : 코어와 가장 가까운 캐시 메모리
    • L2(level 2) 캐시 : 코어와 L1 캐시 다음으로 가까운 캐시 메모리
    • L3(level 3) 캐시 : 코어와 L2 캐시 다음으로 가까운 캐시 메모리
  • 멀티 코어 프로세서의 일반적인 캐시 메모리 구현
  • 캐시 메모리의 계층 구조를 포함한 세부적인 저장 장치 계층 구조

참조 지역성 원리

  • 캐시 메모리는 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는 프로그램이 모여 있는 공간 근처를 집중적으로 접근합니다.

Chapter 07 : 보조기억장치

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

하드 디스크

  • 하드 디스크(HDD : Hard Disk Drive) : 자기적인 방식으로 데이터를 저장하는 보조기억장치입니다.
  • 하드 디스크의 구조
    • 플래터(platter) : 자기 물질로 덮여 있어 수많은 N극과 S극(N극, S극은 0과 1의 역활을 수행합니다.)을 저장하며, 동그란 원판 모양입니다.
      • 하드 디스크는 많은 양의 데이터 저장을 위해 여러 겹의 플래터로 이루어져 있고, 플래터 양면을 모두 사용할 수 있습니다.
    • 스핀들(spindle) : 프래터를 회전시키는 구성 요소
      • RPM(Revolution Per Minute) : 스핀들이 플래터를 돌리는 속도(분당 회전수)
    • 헤드(head) : 플래터 대상으로 데이터를 읽고 쓰는 구성 요소, 프래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓰며, 바늘 모양의 부품입니다.
    • 디스크 암(disk arm) : 헤드를 원하는 위치로 헤드를 이동시키는 구성 요소
      • 일반적으로 모든 헤드는 디스크 암에 부착되어 다같이 이동합니다.
  • 하드 드라이브의 데이터 저장 구조
    • 트랙(track) : 플래터를 운동작의 달리기 트랙과 같이 여러 동심원으로 나누었을 때의 하나의 원
    • 섹터(sector) : 트랙을 피자와 같이 여러 조각으로 나눌때의 한 조각
    • 블록(block) : 하나 이상의 섹터를 묶어 표현하는 단위
    • 실린더(cylinder) : 여러 겹의 플래터 상의 같은 트랙의 위치를 모아 연결한 논리적 단위 (같은 위치의 트랙끼리 연결한 원통 모양의 공간)
      • 연속된 정보는 보통 한 실린더에 기록합니다.
      • 디스크 암을 움직이지 않고 여러 헤드들을 통해서 한 번에 실린더의 정보를 읽습니다.
  • 하드 디스크의 저장된 데이터 접근 시간
    • 탐색 시간(seek time) : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동 시키는 시간
    • 회전 지연(rotational latency) : 헤드가 있는 곳으로 플래터를 회전 시키는 시간
    • 전송 시간(transfer time) : 하드 디스크와 컴퓨터 간의 데이터 전송하는 시간
  • 단일 헤드 디스크와 다중 헤드 디스크
    • 단일 헤드 디스크(single-head disk) : 플래터 한 면당 헤드가 하나씩 달려 있는 하드 디스크. 헤드를 데이터가 있는 곳까지 움직여야해서 이동 헤드 디스크(movable-head disk)라고도 부릅니다.
    • 다중 헤드 디스크(multiple-head disk) : 헤드가 트랙별로 여러 개 달려 있는 하드 디스크. 트랙별 헤드가 있기 때문에 탐색 시간이 들지 않아 탐색 시간이 0입니다. 헤드가 움직일 필요 없어서 고정 헤드 디스크(fixed-head disk)라고도 부릅니다.

플래시 메모리

  • 플래시 메모리(flash memory) : 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치입니다.
    • USB 메모리, SD카드, SSD가 플래시 메모리 기반의 보조기억장치입니다.
    • 주기억장치 중 하나인 ROM에도 사용됩니다.
  • 플래시 메모리의 단위
    • 셀(cell) : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위입니다.
    • 페이지(page) : 셀들이 모여 만들어진 단위
    • 블록(block) : 페이지가 모여 만들어진 단위
    • 플레인(plane) : 블록이 모여 만들어진 단위
    • 다이(die) : 플레인이 모여 만들어진 단위
  • 플래시 메모리의 동작 (읽기/쓰기 및 삭제)
    • 동작이 이루어지는 단위 : 읽기/쓰기 단위와 삭제 단위가 다른 것이 플래시 메모리의 가장 큰 특징 중 하나입니다.
      • 읽기/쓰기 : 페이지 단위
      • 삭제 : 블록 단위
    • 페이지 상태
      • Free 상태 : 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
      • Valid 상태 : 이미 유효한 데이터를 저장하고 있는 상태
      • Invalid 상태 : 쓰레기 값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태
    • 플래시 메모리의 동작 특징
      • 플래시 메모리는 하드 디스크와 달리 덮어 쓰기가 불가능하여 Valid 상태인 페이지에는 새 데이터를 저장할 수 없습니다.
      • 새로운 데이터가 들어오면 Free 상태의 페이지에 데이터를 저장하고, 해당 페이지는 Valid상태가 됩니다.
      • 데이터의 수정이 이뤄지면, 덮어쓰기가 불가능하여 기존에 저장된 데이터 페이지는 Invalid상태(쓰레기값)가 되며, 수정된 값이 새로운 Free 상태의 페이지에 저장됩니다.
      • 가비지 컬렉션(garbage collection) : Invalid상태인 쓰레기 값을 저장하고 있는 공간의 용량 낭비를 해결하기 위한 기능입니다.
        1. 유효한 페이지(Valid 상태)들만 새로운 블록으로 복사
        2. 기존의 블록을 삭제
          • 플래시 메모리의 삭제는 블록 단위로 이뤄집니다.
          • 기존 블록을 삭제하면, 해당 블록에는 Free 상태의 페이지로 변하며 재사용 가능해집니다.
  • 플래시 메모리의 종류 : 하나의 셀에 몇 비트를 저장할 수 있는지에 따라서 종류가 나뉩니다.
    • SLC(Single Level Cell) : 한 셀로 두 개의 정보를 표현할 수 있습니다.
      • MLC, TLC에 비해 비트의 빠른 입출력이 가능하며, 수명이 길고, 용량 대비 가격이 높습니다.
      • 데이터 읽고 쓰기가 반복되며 고성능의 빠른 저장 장치가 필요한 경우 사용됩니다.
    • MLC(Multiple Level Cell) : 한 셀로 네 개의 정보를 표현할 수 있습니다.
      • 한 셀에 두 비트를 저장할 수 있어 SLC 타입 대비 대용량화에 유리합니다.
      • SLC 타입보다 가격이 저렴하며, 많은 플래시 메모리 저장 장치가 MLC나 TLC로 만들어집니다.
    • TLC(Triple-Level Cell) : 한 셀로 여덟 개의 정보를 표현할 수 있습니다.
      • SLC, MLC 타입 보다 더 대용량화에 유리합니다.
      • SLC, MLC 타입 보다 수명과 속도가 떨어지지만 용량 대비 가격이 저렴합니다.

07-2 : RAID의 정의와 종류

RAID의 정의

RAID(Redundant Array of Independent Disks)는 주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술입니다.

RAID의 종류

RAID를 구성하는 방법은 여러 가지이며, Raid 구성 방법(RAID 레벨)에 따라 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6이 있으며, 여러 개를 복합하여 구성하는 파생 방식인 RAID 10, RAID 50 등이 있습니다.

RAID의 구성 방법에 대한 설명

  • RAID 0 : 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식입니다.
    • 하드 디스크에 번갈아 가며 데이터를 저장합니다. 즉, 저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장됩니다.
    • 줄무늬처럼 분산되어 저장된 데이터를 스트라입(stripe)이라 하며, 분산하여 저장하는 것을 스트라이핑(striping)이라고 합니다.
    • 스트라이핑하면 하나의 저장 장치 대비하여 여러 개의 장치에 읽고 쓸 수 있어 저장된 데이터를 읽고 쓰는 속도가 빨라집니다. (4TB 저장 장치 한 개 대비 RAID 0로 구성된 1TB 저장 장치 네 개의 속도가 이론상 네 배 빠릅니다.)
    • RAID 0는 저장된 정보가 안전하지 않으며, RAID 0로 구성된 하드 디스크 중 하나에 문제가 생기면 다른 모든 하드 디스크의 정보를 읽는 데 문제가 생길 수 있습니다.
  • RAID 1 : 보조기억장치의 완전한 복사본을 만드는 구성 방식입니다.
    • 완전한 복사본을 만들기 때문에 미러링(mirroring)이라고도 부릅니다.
    • RAID 1은 데이터를 쓸 때 원본과 복사본 두 군데에 데이터를 쓰기 때문에 RAID 0보다 느립니다.
    • RAID 1은 복구가 매우 간단합니다. 하나의 디시크에 문제가 발생한 경우 복사본이기에 다른 디스크를 참조하면됩니다.
    • RAID 1은 사용 가능한 용량이 적어지는 단점이 있습니다. 복사본이 만들어지는 용량만큼 사용자가 사용하지 못하므로 사용되는 디스크의 절반의 용량을 사용할 수 없습니다. 따라서 많은 양의 디스크가 필요하고 비용이 증가합니다.
  • RAID 4 : 완전한 복사본 대신 오류를 검출하고 복구하기 위한 정보(패리티)를 저장한 장치를 두는 구성 방식입니다.
    • 패리티 비트(parity bit) : 오류를 검출하고 복구하기 위한 정보
    • 패리티를 저장하는 장치를 이용해 다른 장치들의 오류를 검출하고, 복구합니다.
    • RAID 1보다 적은 하드 디스크로도 데이터를 안전하게 보관할 수 있습니다.
  • RAID 5 : RAID4와 같이 패리티를 이용하며, 패리티 정보를 하나의 저장 장치가 아닌 분산하여 저장하는 방식입니다.
    • RAID 4의 패리티를 저장하는 장치에 병목 현상이 발생하는 문제를 해소합니다.
  • RAID 6 : RAID 5와 구성은 같지만, 서로 다른 두 개의 패리티를 두는 방식입니다.
    • 오류 검출하고 복구할 수 있는 수단이 두 개가 되어 RAID 4나 RAID 5보다 안전한 구성입니다.
    • 새로운 정보를 저장할 때 패리티가 두 개이므로, 쓰기 속도가 RAID 5보다 느립니다.

Chapter 08 : 입출력장치

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

입출력장치의 복잡성

  1. 입출력장치의 종류가 너무 많습니다.
    • 장치의 종류 마다 속독, 데이터 전송 형식이 다양해 입출력 장치와 정보를 주고 받는 방식의 규격화가 어렵습니다.
  2. CPU와 메모리 데이터 전송률 대비 입출력장치의 데이터 전송률이 낮습니다.
    • 전송률(transfer rate) : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
    • 전송률 차이로 CPU와 메모리, 입출력 장치 간의 통신이 어렵습니다.

장치 컨트롤러

  • 장치 컨틀로러(device controller) : 입출력장치의 복잡성으로 인하여 컴퓨터에 직접 연결되지 않고, 컴퓨터와의 연결해주는 하드웨어, 입출력 제어기(I/O controller), 입출력 모듈(I/O module) 등으로도 불립니다.
  • 장치 컨트롤러의 역할
    • CPU와 입출력장치 간의 통신 중개 : 종류가 많아 규격화가 어려운 문제를 번역가 역할을 통해 해소
    • 오류 검출 : 통신 중개 중 문제 상태에 대한 오류 검출
    • 데이터 버퍼링 : 전송률이 높은 CPU와 일반적으로 전송률이 낮은 입출력장치의 전송률 차이를 데이터 버퍼링으로 완화
      • 버퍼링(buffering) : 전송률이 다른 장치 간의 데이터를 버퍼(buffer)에 저장하여 전송률을 비슷하게 맞추는 방법
      • 버퍼(buffer) : 임시 저장 공간
  • 장치 컨트롤러의 구조
    • 데이터 레지스터(data register) : CPU와 입출력장치 사이에 주고 받을 데이터가 담기는 레지스터, 버퍼의 역할을 하며, 주고받는 데이터가 많은 입출력장치에서는 레지스터 대신 RAM을 사용하기도 합니다.
    • 상태 레지스터(status register) : 입출력장치의 입출력 작업 준비, 완료, 오류 등의 상태 정보가 기록되는 레지스터
    • 제어 레지스터(control register) : 입출력장치가 수행할 내용에 대한 제어 정보 및 명령어 저장 레지스터
      • 상태 레지스터와 제어 레지스터는 하나의 레지스터(상태/제어 레지스터)로 사용되기도 합니다.

장치 드라이버

  • 장치 드라이버(device driver) : 장치 컨트롤러의 동작을 감지, 제어하여 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램입니다.
    • 프로그램으로 실행 과정에 메모리에 로드됩니다.
    • 장치 컨트롤러가 하드웨어적인 통로라면, 장치 드라이버는 소프트웨어적인 통로입니다.
    • 컴퓨터가 연결된 장치의 드라이버를 인식하고 실행하면 해당 장치와 컴퓨터 내부 간의 정보를 주고받을 수 있습니다.
    • 장치 드라이버를 인식하고 실행하는 주체는 운영체제입니다.
    • 장치 드라이버는 운영체제가 기본으로 제공하는 것도 있지만, 장치 제작자가 따로 제공하기도 하며, 해당 장치는 해당 드라이버를 설치해야만 사용할 수 있습니다.

08-2 : 다양한 입출력 방법

장치 컨트롤러와 CPU 간의 정보 교환 방법입니다.

프로그램 입출력

  • 프로그램 입출력(programed I/O) : 프로그램 속 명령어로 입출력장치를 제어하는 방법입니다.
  • CPU가 프로그램 속 명령어를 실행하는 과정 중 입출력 명령어를 만나면, 입출력치의 장치 컨트롤러와 상호작용하여 입출력 작업을 수행합니다.
  • 프로그램 입출력의 명령어 표현 및 저장 방식
    • 메모리 맵 입출력(memory-mapped I/O) : 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 방법
      • 메모리 주소 공간이 축소됩니다.
      • 메모리와 입출력장치에 같은 명령어 사용이 가능합니다.
    • 고립형 입출력(isolated I/O) : 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리하는 방법
      • 메모리 주소 공간이 축소되지 않습니다.
      • 입출력 전용 명령어를 사용합니다.

인터럽트 기반 입출력

  • 인터럽트 기반 입출력(Interrupt-Driven I/O) : 입출력장치에 의한 하드웨어 인터럽트를 기반으로 하는 입출력을 뜻합니다.
    • 우선 순위에 따라서 인터럽트를 처리합니다.
  • 프로그래머블 인터럽트 컨트롤러(PIC : Programmable Interrupt Controller) : 여러 장치 컨틀롤러에 연결되어 하드웨어 인터럽트 요청들의 우선순위를 판별한 뒤 CPU에 지금 처리해야 할 하드웨어 인터럽트를 알려주는 장치입니다.
    • NMI(Non-Maskable Interrupt) : 무시할 수 없는 인터럽트
    • NMI는 우선 순위가 가장 높아 PIC가 판별하지 않습니다.
    • PIC가 우선순위를 조정해 주는 인터럽트는 인터럽트 비트를 통해 막을 수 있는 하드웨어 이터럽트입니다.

DMA 입출력

  • DMA(Direct Memory Access) : 입출력장치와 메모리가 CPU를 거치지 않고 상호작용할 수 있는 입출력 방식입니다.
  • DMA 입출력을 위해서는 시스템 버스에 연결된 DMA 컨트롤러 하드웨어가 필요합니다.
    • 프로그램 기반 입출력과 인터럽트 기반 입출력 모두 입출력장치와 메모리 사이에 전송되는 모든 데이터가 CPU를 거쳐서 동작하기 때문에 CPU의 부담이 커집니다. 해당 CPU의 기능을 대체하는 하드웨어입니다.
    • DMA 컨트롤러는 시스템 버스로 메모리에 직접 접근이 기능하지만, 시스템 버스는 동시에 사용할 수 없으므로, CPU가 시스템 버스를 이용하지 않거나 일시적으로 이용하지 않도록 요청 후 시스템 버스를 사용합니다.
      • CPU 입장에서 버스에 접근하는 주기를 도둑 맞는 것이기 때문에 DMA의 시스템 버스 이용을 사이클 스틸링(cycle stealing)이라 합니다.
  • 입출력 버스(input/output bus)
    • CPU, 메모리, DMA 컨트롤러, 장치 컨트롤러가 같은 버스를 공유하는 경우 DMA가 메모리 접근 시 시스템 버스를 두 번 사용하며, DMA가 시스템 버스를 사용하는 만큼 CPU가 시스템 버스를 이용하지 못하는 문제가 있습니다.
    • 위 문제를 해결하기 위해 별도의 버스를 통해 DMA 컨트롤러와 장치 컨트롤러를 연결하는 방식입니다.
    • 장치 컨트롤러들이 시스템 버스가 아닌 입출력 버스로 DMA 컨트롤러에 연결되며 DMA 컨트롤러와 장치 컨트롤러 간의 데이터 전송 시에는 시스템 버스가 아닌 입출력 버스를 사용합니다.
    • 입출력 버스에는 PCI(Peripheral Component Interconnect)버스, PCI Express(PCIe) 버스 등의 종류가 있습니다.

3주차 미션

1. 기본 미션 : p. 185의 확인 문제 3번, p 205의 확인 문제 1번 풀고 인증하기

1.1. p. 185 : 확인 문제 3번 : 다음 설명을 읽고 무엇에 대한 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.

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

1.2. p. 205 : 확인 문제 1번 : 다음 보기에 있는 저장 장치들로 저장 장치 계층 구조 도식도를 채우세요.

[보기] 메모리, 보조기억장치, 캐시 메모리, 레지스터


1. 레지스터
2. 캐시 메모리
3. 메모리
4. 보조기억장치

2. 선택 미션 : Ch.07(07-1) RAID의 정의와 종류를 간단히 정리해 보기

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

  • 하드 디스크(HDD : Hard Disk Drive) : 자기적인 방식으로 데이터를 저장하는 보조기억장치입니다.
  • 플래시 메모리(flash memory) : 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치입니다.
    • USB 메모리, SD카드, SSD가 플래시 메모리 기반의 보조기억장치입니다.
    • 주기억장치 중 하나인 ROM에도 사용됩니다.

07-2 : RAID의 정의와 종류

RAID의 정의

RAID(Redundant Array of Independent Disks)는 주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술입니다.

RAID의 종류

RAID를 구성하는 방법은 여러 가지이며, Raid 구성 방법(RAID 레벨)에 따라 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6이 있으며, 여러 개를 복합하여 구성하는 파생 방식인 RAID 10, RAID 50 등이 있습니다.

참조 자료

profile
발전 중인 주니어 개발자

0개의 댓글