본문 바로가기
혼공단

[혼공단 10기] 혼자 공부하는 컴퓨터 구조+운영체제 3주차

by ra388 2023. 7. 20.

6장 내용정리

06-1. RAM의 특징과 종류

RAM의 특징

  • 실행할 프로그램의 명령어와 데이터가 저장된다.
  • 전원을 끄면 저장된 내용이 사라지는데, 이를 휘발성 저장 장치라고한다.
  • RAM용량이 클수록 프로그램을 빠르게 실행하는데 유리하다.

RAM의 종류

  • DRAM(Dynamic RAM): 시간이 지나면 저장된 데이터가 점차 사라진다.
    • 단점: 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화해야 한다.
    • 장점: 소비전력이 비교적 낮고 저렴하고 집적도가 높아 대용량 설계가 용이하다.
    • 따라서 일반적으로 많이 사용된다.
  • SRAM(Static RAM): 시간이 지나도 저장된 데이터가 사라지지 않는다
    • 단점: 소비 전력이 크고 가격이 비싸며 집적도가 낮다.
    • 캐시 메모리로 사용된다.
  • SDRAM(Synchronous Dynamic RAM): 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있다.
  • DDR SDRAM(Double Data RAte  SDRAM): 대역폭을 넓혀 속도를 빠르게 만든 SDRAM.

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

메모리의 주소

  • 물리 주소: 메모리가 사용하는 주소로 실제로 저장된 하드웨어상의 주소를 의미한다.
    • 베이스 레지스터: 프로그램의 가장 작은 물리 주소, 즉 첫 물리 주소로 메모리 관리 장치에 저장되어 있다.
  • 논리 주소: CPU와 실행중인 프로그램이 사용하는 주소로 각각에 프로그램에 부여된 0번지부터 시작되는 주소.

메모리 관리 장치(MMU): 논리 주소와 물리 주소 간의 변환을 수행하는 하드웨어.

  • CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 메모리의 주소에 접근한다.
  • 논리 주소 + 베이스 레지스터 = 메모리 주소

메모리 보호 기법: 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 방법으로, CPU가 접근하려는 논리 주소를 한계 레지스터가 저장한 값보다 작도록 검사한다.

  • 한계 레지스터: 실행 중인 프로그램의 논리 주소의 최대 크기를 저장한다.

06-3. 캐시 메모리

캐시 메모리: CPU와 메모리 사이에 위치하며 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반의 저장 장치.

CPU의 연산 속도메모리 접근 속도의 차이를 조금이나마 줄이기 위한 장치이다.

코어와 가까운 순서대로 L1캐시, L2캐시, L3캐시라고 부른다.

 

저장 장치 계층 구조: CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낸 것이다.

참조 지역성 원리

캐시 메모리는 CPU에서 자주 사용할 법한 데이터를 예측해서 저장한다.

이때 참조 지역성의 원리에 따라 메모리로부터 가져올 데이터를 결정한다.

  1. CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다. (시간 지역성)
    • 변수에 값을 저장하면, 프로그램을 실행하는 동안 변수에 여러 번 다시 접근하는 것
  2. CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다. (공간 지역성)
    • 프로그램과 데이터들은 관련 있는것끼리 저장이 된다. 따라서 접근한 메모리 공간 근처를 접근하게 된다.
  • 캐시 히트: 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에 사용될 경우를 칭한다.
  • 캐시 미스: 캐시 히트의 반대 경우로, 캐시 미스가 자주 발생하면 캐시 메모리를 활용하지 못하므로 성능이 떨어진다.
  • 캐시 적중률: 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수), 대략적인 캐시 적중률은 85~95% 이상이다.

7장 내용 정리

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

하드 디스트(자기(magnetic) 디스크) 구성 요소

  • 플래터: 실질적으로 데이터가 저장되는 원판으로 0과 1의 역할을 수행하는 N극과 S극을 저장한다.
    • 트랙: 플래터를 여러 동심원으로 나눈 것을 트랙
    • 섹터: 트랙을 피자 조각처럼 나눈 것 중 한 조각을 섹터, 일반적으로 512바이트 정도의 크기를 갖는다.
    • 실린더: 여러 겹의 플래터 상에 같은 트랙이 위치한 곳의 논리적 단위로, 디스크 암을 움직이지 않고 데이터에 접근할 수 있기 때문에 연속된 정보가 기록된다.
  • 스핀들: 플래터를 회전시키는 것
    • 헤드: 데이터를 읽고 쓰는 구성 요소
    • 디스크 암: 헤드를 원하는 위치로 이동 시키는 구성 요소
    • RPM: 스핀들이 플래터를 돌리는 속도, 분당 회전수다.

하드 디스크의 데이터 접근 시간

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

플래시 메모리

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

수행하는 연산에 따라 NAND 플래시와 NOR 플래시가 있는데, 보통 NAND 플래시를 대용량 저장 장치로 많이 사용한다.

단위는 , 셀이 모여서 페이지, 페이지가 모여서 블록, 블록이 모여서 플레인, 플레인이 모여서 다이라고 부른다.

플래시 메모리는 읽기와 쓰기는 페이지 단위로, 삭제는 페이지 단위로 이루어진다는 특징이 있다.

    • 플래시 메모리에서 데이터를 저장하는 가장 작은 단위, 이 셀이 모여 MB, GB, TB용량의 저장 장치가 되는 것.
    • 셀에 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리 종류가 나뉜다. (n개의 비트 = 2의 n승개의 정보 )
구분 SLC(Single) MLC(Multiple) TLC(Triple)
셀당 비트 1비트 2비트 3비트
수명 길다 보통 짧다
읽기/쓰기 속도 빠르다 보통 느리다
용량 대비 가격 높다 보통 낮다
대용량화 불리하다 보통 유리하다
  • 페이지
    • 셀들이 모여 만들어진 단위, 읽기와 쓰기가 이루어진다.
      • Free 상태: 데이터를 저장하지 않은 상태
      • Valid 상태: 유효한 데이터를 저장하고 있는 상태 (플래시 메모리는 덮어쓰기가 불가능하여 valid 상태인 페이지에는 새 데이터를 저장할 수 없다.)
      • Invalid 상태: 유효하지 않은 데이터(쓰레기값)를 저장하고 있는 상태, 용량을 낭비하는 상태다.
  • 가비지 컬렉션: Invalid 상태를 없애기 위한 기능으로 다음과 같은 과정을 수행한다.
    1. 유효한 페이지들만 새로운 블록으로 복사한다.
    2. 기존의 블록을 삭제한다.

07-2. RAID의 정의와 종류

1TB 4개와 4TB 1개는 용량은 같지만 1TB 4개로  RAID를 구성하면 성능과 안전성면에서 4TB 1개를 능가할 수 있다.

 

RAID( Redundant Array of Independent Disks )의 정의

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

 

RAID의 종류

대표적으로 RAID 0, RAID 1, RAID3, RAID 2, RAID 4, RAID 5, RAID 6 과 그로부터 파생된 RAID 10, RAID 50 등(Nested RAID: 여러 RAID 레벨을 혼합한 방식)이 있다.

  • RAID 0: 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
    • 줄무늬처럼 분산된 데이터를 스트라입, 분산하여 저장하는 것을 스트라이핑이라고 한다.
    • 장점: 데이터를 동시에 읽고 쓸 수 있다.
    • 단점: 디스크 하나에 문제가 생긴다면 다른 모든 하드 디스크 정보를 읽는데 문제가 생겨서 저장된 정보가 안전하지 않다.
  • RAID 1: 복사본을 만드는 방식으로, 하드디스크 1, 2를 원본으로 하드디스크 3, 4를 복사본으로 사용하여 미러링이라고도 부른다.
    • 장점: 디스크에 문제가 생겨도 복사본에서 정보를 찾을 수 있기 때문에 복구가 매우 간단하다.
    • 단점: 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어진다. 따라서 필요한 디스크가 많아지고 비용이 증가한다.
  • RAID 4: RAID 1처럼 복사본을 만드는 대신 패리티 비트를 저장한 장치를 두는 방식 
    • 패리티 비트: 오류를 검출하는 정보, RAID에서는 오류 복구도 가능하다.
    • 장점: 적은 하드 디스크로도 데이터를 안전하게 보관할 수 있다.
    • 단점: 패리티를 저장한 디스크 또한 데이터를 쓰는 것으로 패리티가 저장된 장치에서 병목 현상이 발생한다.
  • RAID 5: 패리티 정보를 하나의 디스크에 몰아넣는게 아닌 분산하여 저장하는 방식, 병목현상을 해소
  • RAID 6: 서로 다른 두 개의 패리티를 두는 방식
    • 장점: 패리티가 두개씩 있는 것으로 RAID 4나 RAID 5보다 안전한 구성이다.
    • 단점: 새로운 정보를 저장할 때마다 저장할 패리티가 두개이므로 쓰기 속도가 RAID 5보다는 느리다.

8장 내용 정리

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

장치 컨트롤러(=입출력 제어기 = 입출력 모듈)의 역할

  1. CPU와 입출력장치 간의 통신을 중개
  2. 오류 검출
  3. 데이터 버퍼링
    • 버퍼링: 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장공간에 저장하여 전송률을 비슷하게하는 것

장치 컨트롤러 내부

  • 데이터 레지스터: CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터, 버퍼 역할을 한다.
  • 상태 레지스터: 입출력장치의 작업할 준비가 되었는지, 완료되었는지, 오류가 없는지 등의 상태 정보가 저장된다. 
  • 제어 레지스터: 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장한다.

장치 드라이버

장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램, 실행 과정에서 메모리에 저장된다.


08-2 다양한 입출력 방법

프로그램 입출력

프로그램 속 명령어로 입출력장치를 제어하는 방법

  1. CPU가 컨트롤러의 제어레지스터에 명령을 보낸다
  2. 컨트롤러는 장치의 상태를 확인한 후 상태 레지스터에 상태를 보낸다.
  3. CPU는 컨트롤러의 상태 레지스터를 주기적으로 읽어 장치의 준비 여부를 확인한다.
  4. 장치가 준비되면 CPU가 저장할 데이터를를 데이터 레지스터에 쓴다.

여러 장치 컨트롤러 속 레지스터들이 명령어로 표현되고 메모리에 저장되어 있는 방식은 크게 아래와 같다.

메모리 맵 입출력 고립형 입출력
메모리와 입출력장치는 같은 주소 공간 사용 메모리와 입출력장치는 분리된 주소 공간 사용
메모리 주소 공간이 축소됨 메모리 주소 공간이 축소되지 않음
메모리와 입출력장치에 같은 명령어 사용 가능 입출력 전용 명령어 사용

기본 미션

1) p.185의 확인 문제 3번

SRAM: 주로 캐시 메모리로 활용된다. 집적도가 상대적으로 낮다.

DRAM: 주로 주기억장치로 활용된다. 대용량화하기 유리하다.

 

2) p.205의 확인 문제 1번

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

선택 미션

ch.07(07-1)의 RAID의 정의와 종류를 간단히 정리해 보기

>>> 07-1 내용 정리