공부

[혼공컴운]3주차_메모리와 캐시 메모리/보조기억장치/입출력장치

무른2 2025. 1. 26. 20:16

✔️메모리와 캐시 메모리

RAM의 특징과 종류

 

  • 주기억장치의 종류에는 RAM과 ROM이 존재하고 '메모리'는 주로 RAM을 지칭한다.
  • RAM은 실행할 프로그램의 명령어와 데이터가 저장되는 휘발성 저장 장치이고, 보조기억장치는 비휘발성 저장 장치이다.
  • RAM의 용량이 클시 보조기억장치에서 프로그램을 여러 횟수에 걸쳐 가져올 필요가 없으므로, 일반적으로 프로그램 실행 속도가 증가한다. 
  • RAM의 종류는 DRAM,SRAM,SDRAM,DDR SDRAM으로 크게 나뉜다.
    • DRAM: 시간이 지나면 저장된 데이터가 점차 사라지는 RAM/ 소비 전력이 비교적 낮음/ 저렴함/ 집적도가 높음/대용량 설계가 용이
    • SRAM: 저장된 데이터가 변하지 않는 RAM/ 소비 전력 높음/ 비쌈/ 집적도가 낮음/캐시 메모리로 주로 사용됨
    • SDRAM: 클럭과 동기화된 DRAM
    • DDR SDRAM: 대역폭이 두 배 넓은 SDRAM 

 

메모리의 주소 공간

 

  • 메모리의 주소 공간에는 물리 주소와 논리 주소가 존재하며 물리 주소메모리 하드웨어가 사용하는 주소이고, 논리 주소CPU와 실행중인 프로그램이 사용하는 주소이다.
  • CPU가 메모리와 상호작용하기 위해서는 논리 주소와 물리 주소 간의 변환이 필요한데 이때 MMU(메모리 관리 장치)라는 하드웨어가 변환을 수행한다.
  • MMU는 CPU가 발생시킨 논리 주소+ 베이스 레지스터 값을 통해 논리 주소를 물리 주소로 변환한다.
    • 베이스 레지스터: 프로그램의 가장 작은 첫 무리 주소
    • 논리 주소: 프로그램의 시작점으로부터 떨어진 거리
  • 한계 레지스터는 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 하는 메모리 보호 레지스터이다.
  • 한계 레지스터논리 주소의 최대 크기를 저장한다.
  • 즉 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값+한계 레지스터 값 미만으로 이루어지게 된다.

 

캐시 메모리

 

  • 캐시 메모리: CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치
  • 컴퓨터가 사용하는 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 표현하고 이를 저장 장치 계층 구조라고 한다.
  • 캐시 히트: 캐시 메모리가 CPU가 사용할 대상 데이터를 예측하여 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우
  • 캐시 적중률이 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.
  • 캐시 메모리는 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높인다.
    • 시간 지역성: 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
    • 공간 지역성: 접근한 메모리 공간 근처를 접근하려는 경향

 

 

✔️보조기억장치

다양한 보조기억장치

 

  • 하드디스크: 자기적인 방식으로 데이터를 저장하는 보조기억장치
  • 하드디스크의 구성 요소에는 플래터, 스핀들, 헤드, 디스크암이 있다.
    • 플래터: 하드 디스크가 저장되는 장소
    • 스핀들: 하드 디스크의 플래터를 돌리는 구성 요소
    • 헤드: 하드 디스크에 저장된 데이터를 읽고 쓰는 구성 요소
    • 디스크암: 원하는 위치로 헤드를 이동시키는 구성 요소
  • 하드 디스크가 저장된 데이터에 접근하는 시간은 탐색 시간, 회전 지연, 전송 지연으로 나뉜다.
    • 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
    • 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간
    • 전송 시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
  • 플래시 메모리: 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치로, 보조기억 장치로 활용된다.
  • SLC 타입: 한 셀에 1비트를 저장할 수 있는 플래시 메모리
  • MLC 타입: 한 셀에 2비트를 저장할 수 있는 플래시 메모리
  • TLC 타입: 한 셀에 3비트를 저장할 수 있는 플래시 메모리
  • : 플래시 메모리 내 가장 작은 단위
  • 페이지: 셀들이 모여 만들어진 단위
  • 블록: 페이지가 모여 만들어진 단위
  • 플레인: 블록이 모여 만들어진 단위
  • 다이: 플레인이 모여 만들어진 단위
  • 플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어지고 페이지는 Free, Valid, Invalid의 상태를 가질 수 있다.
    • Free: 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
    • Valid: 이미 유효한 데이터를 저장하고 있는 상태
    • Invalid: 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태
  • 플래시 메모리는 덮어쓰기가 불가능하여 Valid 상태의 페이지에 새 데이터를 저장할 수 없다.
  • 가비지 컬렉션:  유효한 페이지들만 새로운 블록으로 복사한 후 기존 블록을 삭제하여 공간을 정리

 

RAID
  • RAID: 데이터의 안전성 혹은 높은 성능을 위해 여러 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 기술
  • RAID의 종류
    • RAID 0: 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
      저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장되고 이렇게 분산하여 저장하는 것스트라이핑이라고 칭한다. RAID 0은 저장된 정보가 안전하지 않다는 단점이 있다.
    • RAID 1: 복사본을 만드는 방식으로 미러링이라고 칭한다.
      복구가 매우 간단하다는 장점이 있으나, 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어진다는 단점이 있다.
    • RAID 4: 오류를 검출하고 복구하기 위한 정보인 패리티 비트를 두는 구성 방식
      새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게 되어 병목 현상이 발생한다는 단점이 있다.
    • RAID 5: 패리티를 분산하여 저장하는 구성 방식
    • RAID 6:  서로 다른 두 개의 패리티를 두는 구성 방식
      RAID 5보다는 속도가 느리나, 더 안전하게 데이터를 보관하고 싶을 때 사용된다.\

 

✔️입출력장치

장치 컨트롤러와 장치 드라이버

 

  • 입출력장치는 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고받는다.
  • 장치 컨트롤러를 사용하는 이유
    • 입출력장치의 종류가 너무 많아, 다양한 입출력장치와 정보를 주고받는 방식 규격화가 어렵다.
    • CPU 와 메모리의 전송률과 입출력장치의 전송률이 비슷하지 않다.
  • 장치 컨트롤러의 기능
    • CPU와 입출력장치 간의 통신 중개
    • 오류 검출
    • 데이터 버퍼링
  • 장치 컨트롤러의 구조
    • 데이터 레지스터: CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
    • 상태 레지스터: 입출력장치의 상태 정보가 저장되는 레지스터
    • 제어 레지스터: 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장하는 레지스터
  • 장치 드라이버: 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램

 

다양한 입출력 방법

 

  • 프로그램 입출력: 프로그램 속 명령어로 입출력 작업을 하는 방식
  • 메모리 맵 입출력: 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 입출력 방식
  • 고립형 입출력: 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 별도로 분리하는 입출력 방식
  • 인터럽트 기반 입출력: 인터럽트로써 입출력을 수행하는 방법
  • DMA 입출력: CPU를 거치지 않고 메모리와 입출력장치 간의 데이터를 주고받는 입출력 방식
  • 입출력 버스: 입출력장치와 컴퓨터 내부를 연결 짓는 통로로, 입출력 작업 과정에서 시스템 버스 사용 횟수를 줄여준다.

 

숙제