04. [혼공컴운]3주차_ 컴퓨터 구조

hyewoon·2024년 1월 12일
0

3주차 (1/15 ~ 1/21)
Chapter 06 메모리와 케시메모리
Chapter 07 보조기억장치
Chapter 08 입출력장치

chapter 06. 메모리와 캐시메모리

06-1. RAM의 특징과 종류


주기억장치의 종류에는 RAM(Ramdom Acess Memory) 과 ROM(Read Only Memory) 두가지가 있고, '메모리'라는 용어는 그 중 RAM을 지칭하는 경우가 많습니다.

RAM : 전원이 차단되면 RAM에 있던 데이터가 사라지는 '휘발성 메모리'
ROM : 전원이 차단되어도 데이터를 계속 가지고 있는 '비휘발성 메모리'

여기서는 RAM용량이 컴퓨터 성능에 어떤 영향 미치는지와 RAM의 종류에 대해 학습한다.

  1. RAM의 용량과 성능

CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져와야 할 텐데, RAM용량이 작다면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어진다.
하지만, RAM용량이 충분히 크다면 보조기억장치에서 많은 데이터를 가져와서 미리 RAM에 저장할 수 있다.

📌이처럼, RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리함

  1. RAM의 종류

✅ DRAM : Dynamic RAM
Dynamic(동적인)저장한 데이터가 사라지는 RAM을 의미.

  • DRAM은 데이터의 소멸 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 한다.
  • 소비전력이 낮고, 저렴하고 집적도가 높음(더 작고 빽빽하게 만들 수 있음)
  • 대용량설계에 유리하여 주기억장치로 이용

✅ SRAM : Static RAM
Static(정적인)저장한 데이터가 변하지 않는 RAM을 의미.

  • 소비전력이 높고,비싸집적도가 낮음
  • 대용량으로 만들어질 필요는 없지만 속도가 빨라야 하는 저장 장치에 유리하여 캐시메모리로 이용
DRAMSRAM
재충전필요함필요 없음
속도느림빠름
가격저렴함비쌈
집적도높음낮음
소비 전력적음높음
사용 용도주기억장치(RAM)캐시메모리

✅ SDRAM
Synchronous(동기화된) + DRAM

  • 클럭 신호와 동기화된 즉, 클럭에 맞춰 동작하며 클럭마다 CPU와 정보를 주고받을 수 있는 DRAM

✅ DDR SDRAM
Double Data Rate + SDRAM

  • 대역폭(데이터를 주고 받는 길의 너비)를 넓혀 속도를 빠르게 만든 SDRAM
  • 한 클럭에 하나씩 정보를 주고 받는 SDRAM과 비교했을 때 DDR SDRAM은 두 배의 대역폭으로 한 클럭당 두번 씩 CPU와 정보를 주고 받는다.
  • SDRAM에 비해 전송 속도도 두 배 빠르다.
  • DDR3 SDRAM(8배) > DDR2 SDRAM(4배) > DDR SDRAM(2배) > SDRAM

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


1. 메모리 주소의 종류

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

✅ 논리주소를 사용하는 이유?

메모리에는 새롭게 실행되는 프로그램이 시시때대로 적재되고, 실행이 끝나면 삭제되고, 다시 같은 프로그램 실행되면 적재되는 주소 달라질 수 있다.
그러므로 CPU와 실행프로그램 입장에서는 프로그램의 물리주소가 계속 바뀌는 것이나 마찬가지이다. 그래서 물리주소 대신에 프로그램에 0번지부터 부여되는 자신만을 위한 주소인(프로그램 각각을 구분할 수 있는 고유힌) 논리주소가 필요하다.

2. 논리주소와 물리주소 간의 변환

📌 CPU와 메모리가 상호작용하려면 CPU가 이해하는 논리주소를 메모리 상의 주소인 물리 주소로 변환하는 작업이 필요하다!!

메모리관리장치MMU
: MMU는 CPU가 발생시킨 논리 주소베이스레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.

베이스 레지스터 : 프로그램의 가장 작은 물리주소

한계 레지스터 : 논리주소의 최대 크기

➡️ 물리주소 범위 = 베이스레지스터 값 ~ 베이스레지스터 값+ 한계 레지스터 값

  • CPU는 논리주소가 한계 레지스터보다 작은지를 확인한다.

06-3. 캐시메모리


모든 사람들은 빠르고 동시에 용량이 큰 저장 장치를 원한다.

  • 빠르다 : CPU가 메모리에 접근하는 속도가 빨라, 빠르게 메모리의 정보를 가져오거나 저장할 수 있다.
  • 용량이 크다 : 용량이 크면 여러 프로그램을 동시에 실행할 수 있다.

하지만, '빠른 저장 장치'와 '용량이 큰 저장 장치' 양립이 어렵다.

이유
1. CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
2. 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

1. 저장 장치 계층 구조
컴퓨터가 사용하는 저장 장치들을 'CPU에 얼마나 가까운가'를 기준으로 계층적으로 나타냄

2. 캐시 메모리의 등장

  • CPU가 메모리에 접근하는 속도는 레지스터에 접근하는 속도보다 느리다. (BY 저장 장치 계층 구조)
  • 그럼에도 불구하고 CPU는 프로그램을 실행하는 과정에서 메모리에 빈번하게 접근해야 한다.

    캐시메모리는 CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해서 등장

3. 참조지역성 원리

CPU가 매번 메모리에 왔다 갔다 하는 건 시간이 오래 걸리니, 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리에 가져와서 활용한다.

📌 어떤 데이터를 캐시 메모리로 가지고 올것인가? 데이터 가져오는 기준 ?

참조지역성의 원리

  • 시간 지역성 : 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
  • 공간 지역성 : 접근한 메모리 공간 근처를 접근하려는 경향

📌 캐시 적중률

  • 캐시 히트 : 자주 사용할 것으로 예측한 데이터가 실제로 사용될 경우

  • 캐시 미스 : 자주 사용할 것으로 예측한 데이터가 실제로 사용되지 않을 경우

  • 캐시 적중률 : 캐시 히트 횟수 / (캐시히트 횟수 + 캐시미스 횟수)


chapter 07. 보조기억장치

  • 보조기억장치
    : 보관할 프로그램을 저장하는 장치
    전원이 껴져도 정보를 가지고 있는 비휘발성 저장장치
메모리보조기억장치
저장 대상실행할 프로그램보관할 프로그램
속성휘발성비휘발성

* 보조기억장치의 대표적인 두 가지 종류 : 하드 디스크, 플래시 메모리 __하드디스크(HDD: Hard Disk Drive)__ : 자기적인 방식으로 데이터를 저장하는 보조기억장치 __플래시 메모리(Flash memory)__ : 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장장치 usb메모리, SD카드, SDD 등

7-1. 보조기억장치의 종류

하드디스크


1. 하드디스크 구성요소

📌 플래터(platter) : 실질적으로 데이터 저장되는 공간

  • 트랙섹터로 나누어짐
  • 여러 플래터의 동일한 트랙이 모여 실린더를 이룸
  • 플래터 양면에 데이터가 저장됨
    📌 스핀들(spindle) : 플래터를 회전시키는 구성요소
    📌 헤드(head) : 플래터를 대상으로 데이터를 읽고 쓰는 구성요소
    📌 디스크 암 (disk arm) : 헤드를 원하는 위치로 이동시키는 구성요소

2. 하드디스크 데이터 저장 및 읽기
✅ 데이터 저장
플래터는 트렉과 섹터 그리고 실린더라는 단위로 데이터를 저장
트렉 : 운동장 트렉과 같은 하나의 원
섹터 : 하드디스크의 가장 작은 (정보) 전송 단위,트렉은 여러 조각으로 나눠지는 데 그 한 조각이 섹터
실린더 : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모야 연결한 논리적인 단위로 연속된 정보는 보통 한 실린더에 기록

✅ 저장된 데이터에 접근하는 과정

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

플래시 메모리


1. 플래시 메모리 종류
한 셀에 몇 비트를 저장할 수 있냐에 따라

  • SLC single level cell : 한 셀에 1비트 - 두 개의 정보 표현 가능
  • MLC multiple level cell : 한 셀에 2비트 - 네 개의 정보 표현 가능
  • TLC triple level cell : 한 셀에 3비트 - 여덟 개의 정보 표현 가능
구분SLCMLCTLC
셀당 bit1bit2bit3bit
수명길다보통짧다
일기/쓰기 속도빠르다보통느리다
용량 대비 가격높다보통낮다

플래시 메모리 저장 단위

cell : 플래시메모리에서 데이터를 저장하는 가장 작은 단위
page : 셀들이 모여 만들어진 단위
block : 페이지 모여 만들어진 단위
plane: 블록이 모여 만들어진 단위
die : 플레인이 모여 만들어진 단위

2. 플래시 메모리 데이터 저장 및 읽기

  • 메모리 읽기와 쓰기 : 페이지 단위
    페이지의 상태

    • Free : 어떤 데이터도 저장하지 않아 새로운 데이터 저장할 수 있는 상태
    • Valid : 이미 유효한 데이터 저장한 상태
    • Invalid : 쓰레기값인 유효하지 않은 데이터를 저장한 상태
  • 메모리 삭제 : 블록 단위

플래시 메모리
die > plane > block(데이터 삭제) > page(데이터 읽기 쓰기) > cell
즉, 데이터 삭제하는 단위(block)가 저장하는 읽고 쓰는 단위(page)보다 더 크다.


7-2. RAID의 정의와 종류(with 🎁 선택미션)

  1. RAID란? (Redundant Array of Independent Disks)

여러 개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술입니다.
중복된 데이터를 나눠서 저장하는 제일 큰 이유는 데이터를 안전하게 보호하기 위함에 있습니다.

데이터를 나누는 여러개의 방법이 존재하며, 이 방법들을 레벨이라고 하는 데 레벨에 따라 저장장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 등의 다양한 목적을 만족시킬 수 있습니다.

📑 참고사이트

2 RAID의 종류

  • RAID 0
    • 빠른 데이터의 입출력 위해 데이터를 여러 디스크에 분산해서 저장
    • 장점 : 데이터 쓰고 읽기가 빠르다.
    • 단점 : 하지만 한 디스크에 문제가 생긴다면 다른 모든 디스크에도 문제 생김(데이터 복구 능력 떨어짐)



  • RAID 1
    • RAID 0 보완하여 복사본을 만드는 방식으로 mirroring이라고도 한다.
    • 장점 : 모든 데이터를 다른 디스크에 복사본으로 만들어 놓으므로 데이터 복구 능력이 좋음
    • 단점 : 저장공간의 절반을 복사본으로 사용하므로 저장용량 당 단가가 비싸다.


  • RAID 4
    • RAID 1처럼 복사본 만드는 대신 오류 검출하고 복구하기 위한 정보(패리티 비트) 저장하는 장치 두는 방식
    • 장점 : RAID 1보다 적은 디스크로도 데이터 안전하게 보관
    • 단점 : 데이터 저장될 때마다 패리티 저장하는 디스크에도 데이터 쓰므로 병목현상 발생할 수 있음

  • RAID 5
    • 패티리 정보를 분산하여 저장하는 방식으로 RAID 4의 병목 현상 해결


  • RAID 6
    • 서로 다른 두 개의 패리티 두는 방식으로 데이터를 안전하게 보관하고 싶을 때 사용
    • 장점 : RAID 4나RAID 5보다 안전하게 데이터 보관
    • 단점 : 저장할 패리티가 두 개이므로 쓰기 속도는 RAID 5보다 느리다.


chapter 08. 입출력장치

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

입출력장치는 장치 컨트롤러(하드웨어)장치 드라이버(소프트웨어)를 통해 컴퓨터 내부와 연결되고 소통한다.

장치 컨트롤러

1. 장치 컨트롤러 등장 배경

  • 입출력장치에는 종류가 너무나도 많다.
  • 일반적으로 CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다.
    데이터 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표

이 같은 이유로 입출력장치는 컴퓨터에 직접 연결되지 않고 장치 컨트롤러라는 하드웨어를 통해연결 된다.

2. 장치 컨트롤러의 역할

  • CPU와 입출력장치 간의 통신 중개
  • 오류 검출
  • 데이터 버퍼링

📌 데이터 버퍼링
전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(Buffer)라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법

3. 장치 컨트롤러의 내부 구조

  • 데이터 레지스터
    : 데이터 담기는 레지스터로 버퍼의 역할
  • 상태 레지스터
    : 입출력장치가 작업 준비되었는지, 작업 완료했는지 등 입출력장치의 상태 나타내는 레지스터
  • 제어 레지스터
    : 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장

장치 드라이버

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

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


📌 그렇다면 장치 컨트롤러는 CPU와 정보를 어떻게 주고 받는가?

장치컨트롤러가 CPU와 정보 주고 받는 방식

  • 프로그램 입출력
  • 인터럽트 기반 입출력
  • DMA 입출력

1. 프로그램 입출력

  • 프로그램 속 명령어로 입출력장치 제어
  • CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀

CPU는 어떻게 장치 컨트롤러 속 레지스터주소 값에 접근하고 데이터 읽거나 저장하는가?

  • CPU가 장치 컨트롤러 속 레지스터 인식하는 방식

📌 메모리 맵 입출력
메모리에 접근하기 위한 주소공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주 하는 방식
📌 고립형 입출력
메모리를 위한 주소공간과 입출력장치를 위한 주소 공간을 분리하는 방식

메모리 맴 입출력고립형 입출력

2.인터럽트 기반 입출력

  • 04장에서 학습한 하드웨어 인터럽트로써 입출력장치 제어
  • 동시에 여러개의 인터럽트 발생할 경우
    : 인터럽트 컨트롤러 프로그래머블(PIC) 이라는 하드웨어 장치 통해 우선순위 판별
  • 다중 인터럽트 처리 과정
  1. PIC가 장치 컨트롤러에서 인터럽트 요청신호(들) 를 받아들인다.
  2. PIC가 인터럽트 우선순위를 판단 한 뒤 CPU에 처리해야 할 인터럽트 요청신호를 보낸다.
  3. CPU는 PIC인터럽트 확인 신호를 보낸다.
  4. PIC는 데이터 버스를 통해 CPU에 인터럽트 벡터를 보낸다.
  5. CPU는 인터럽트 벡터를 통해 인터럽트 요청의 주체를 알고, 해당 장치의 인터럽트 서비스 루틴을 실행

3.DMA 입출력

프로그램 입출력방식인터럽트 기반 입출력 방식은 입출력장치와 메모리 간의 데이터이동은 CPU가 주도, 이동하는 데이터도 반드시 CPU 거친다.

3-1. DMA 컨트롤러 등장 배경

📌 데이터간 이동에 반드시 CPU 거쳐야 한다면 CPU는 입출력장치 연산에 너무 많은 시간을 빼았김
-> 이런 문제를 보완하고자 DMA 입출력 등장

  • Direct Memory Access

  • 입출력장치와 메모리가 CPU를 거치지 않고 메모리와 입출력장치간 직접 데이터 주고 받는 입출력 방식

  • DMA 입출력 과정

  1. CPUDMA컨트롤러에 입출력장치의 주소, 수행할연산, 읽거나 쓸 메모리의 주소 등과 같은 입출력 작업을 명령

  1. DMA컨트롤러는 CPU대신 장치 장치컨트롤러와 상호작용하며 입출력 수행. 이때 DMA컨트롤러는 필요한 경우 메모리에 직접 접근

  1. 입출력 작업이 끝나면 DMA 컨트롤러CPU에 인터럽트 걸어 작업 끝났음을 알림

➡️ CPU는 시작과 끝에만 참여, 나머지 과정은 DMA가 주도

3-2. 입출력버스 등장 배경

📌 여전히 DMA와 CPU가 시스템 버스 공유하므로, DMA를 위해 시스템버스를 너무 자주 사용하면 그만큼 CPU가 시스템 버스 이요하지 못함 -> 이를 보안 입출력 버스 등장

입출력 버스
: 입출력장치와 컴퓨터 내부를 연결 짓는 별도의 버스(내부통로)로, 입출력 작업 과정에서 시스템 버스 사용 횟수를 줄여준다.

🏅 기본미션

p. 185의 확인 문제 3번

SRAM : 주로 캐시메모리로 활용
SRAM : 직접도가 상대적으로 낮다.
DRAM : 주로 주기억장치로 활용
DRAM : 대용량화하기 유리

p. 205의 확인 문제 1번 풀고 인증하기

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

🎁 선택미션

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

상단 07-2 RAID의 정의와 종류에서 정리

profile
오늘도 달리는

0개의 댓글