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

김세린·2023년 1월 24일
0
post-thumbnail
post-custom-banner

06-1. RAM의 특징과 종류

주기억장치 구성

  • RAM(메모리)
  • ROM

RAM의 특징

  • 실행할 프로그램의 명령어와 데이터가 저장되는 곳
  • 휘발성 저장 장치(volatile memory)
    • 전원을 끄면 저장된 명령어와 데이터가 모두 날아감
    • RAM
  • 참고) 비휘발성 저장 장치(non-volatile memory)
    • 전원이 꺼져도 저장된 내요잉 유지됨
    • CPU는 보조기억장치에 직접 접근할 수 없다.
    • 하드디스크, SSD, CD-ROM, USB와 같은 보조 기억 장치
  • 비휘발성 저장장치에는 CPU가 접근할 수 없기 떄문에 비휘발성 저장 장치에는 ‘보관할 대상’을 저장하고, 휘발성 저장 장치인 RAM에는 ‘실행할 대상’을 저장함

RAM의 용량과 성능

  • RAM의 용량이 작으면
    • 보조기억장치에서 ‘보관할 대상’을 가지고 오는 일이 잦아진다.
  • RAM의 용량이 충분히 크다면
    • 보조기억장치에서 많은 데이터를 가져와 미리 RAM에 저장해 놓을 수 있어, 여러번 가져오지 않아도 된다.
  • 그렇다고 실행속도가 용량에 비례하진 않는다.

RAM의 종류

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

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

물리주소

  • 주소
    • 물리주소
      • 메모리 하드웨어가 사용하는 주소
      • 메모리가 사용하는 주소 = 하드웨어상의 실제 주소(물리주소)
    • 논리 주소
      • CPU와 실행 중인 프로그램이 사용하는 주소
      • CPU와 실행중인 프로그램이 사용하는 주소 = 각각이 프로그램에 부여된 주소(논리 주소)
  • 주소의 변환
    • 메모리 관리 장치(MMU)
      • 논리주소와 물리주소간의 변환을 돕는 장치
      • 베이스레지스터
        • 프로그램의 가장 작은 물리 주소인 프로그램의 첫 물리 주소를 저장
      • 논리 주소
        • 프로그램의 시작점(베이스 레지스터에 저장된 값)으로 부터 떨어진 거리

메모리 보호 기법

  • 한계 레지스터
    • 다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호하는 역할을 담당한다.
    • 논리 주소의 최대 크기를 지정한다.
    • 접근하고자하는 논리 주소가 한계 레지스터보다 작은지를 검사하여 메모리 내의 프로그램을 보호한다.

06-3. 캐시 메모리

저장 장치 계층 구조

  • 저장장치의 명제
    • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
    • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
  • 저장 장치 계층 구조
    • 컴퓨터가 사용하는 저장 장치들은 CPU에 얼마나 가까운지를 기준으로 계층적으로 나타낸것
    • 각기 다른 용량과 성능의 저장 장치들을 계층화하여 표현한 구조이다.

캐시 메모리

  • CPU와 메모리 사이에 위치하고 레지스터보다 용량이 크고 메모리보다 빠른 SRAM기반의 저장장치
  • CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생
  • 메모리에서 CPU가 사용할 일부 미리 캐시 메모리로 가지고 와서 활용
  • 코어와 가장 가까운 캐시 메모리부터 L1캐시, L2캐시, L3캐시라고 부른다.

참조 지역성 원리

  • 캐시 히트
    • 자주 사용될 것으로 예측한 데이터가 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우
  • 캐시 미스
    • 자주 사용될 것으로 예측하여 캐시 메모리에 저장했지만, 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우
    • 성능 저하의 원인이 된다.
  • 캐시 적중률
    • 캐시가 히트되는 비율
    • 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
  • 참조 지역성 원리
    • 캐시 메모리가 메모리로부터 가져올 데이터를 결정하는 원리
    • CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리
    • 원리
      1. 시간 지역성
        • CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다.
      2. 공간 지역성
        • CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다.

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

하드 디스크

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

플래시 메모리

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

07-2. RAID의 정의와 종류

RAID의 정의

  • RAID
    • 하드 디스크와 SSD를 사용하는 기술로 데이터의 안정성 혹은 높은 성능을 위해 여러개의 물리적 보조 기억 장치를 마치 하나의 논리적 보조 기억장치처럼 사용하는 기술

RAID의 종류

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

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

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

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

장치 드라이버

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

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

프로그램 입출력

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

인터럽트 기반 입출력

  • 인터럽트 기반 입출력
    • 인터럽트를 기반으로 하는 입출력
    • PIC
      • 여러 장치 컨트롤러에 연결되어 장치 컨트롤러에서 보낸 하드웨어 인터럽트 요청들의 우선순위를 판별한 뒤 CPU에 지금 처리해야할 하드웨어 인터럽트는 무엇인지 알려줌
      • PIC의 다중 인터럽트 처리 과정
        1. PIC가 장치 컨트롤러에서 인터럽트 요청 신호를 받아들인다.
        2. PIC는 인터럽트 우선순위를 판단한 뒤 CPU에 처리해야할 인터럽트 요청 신호를 보낸다.
        3. CPU는 PIC에 인터럽트 확인 신호를 보낸다.
        4. PIC는 데이터 버스를 통해 CPU에 인터럽트 벡터를 보낸다.
        5. CPU는 인터럽트 벡터를 통해 인터럽트의 요청의 주체를 알게 되고, 해당 장치의 인터럽트 서비스 루틴을 실행한다.

DMA 입출력

  • DMA
    • 입출력 장치와 메모리가 CPU를 거치지 않고도 상호작용할 수 있는 입출력 방식
    • 직접 메모리에 접근할 수 있는 입출력 기능
    • 시스템 버스에 연결된 DMA 컨트롤러라는 하드웨어가 필요함
  • DMA 입출력 과정
    1. CPU는 DMA 컨트롤러에 입출력 장치의 주소, 수행할 연산(읽기/쓰기), 읽거나 쓸 메모리의 주소 등과 같은 정보로 입출력 작업을 명령합니다.
    2. DMA 컨트롤러는 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업을 수행합니다. 이때 DMA 컨트롤러는 필요한 경우 메모리에 직접 접근하여 정보를 읽거나 씁니다.
    3. 입출력 작업이 끝나면 DMA 컨트롤러는 CPU에 인터럽트를 걸어 작업이 끝났음을 알립니다.

MISSION

P185 - 3번 문제

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

P205 - 1번 문제

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

profile
성장하는 신입 개발자🌱
post-custom-banner

0개의 댓글