본문 바로가기
도서/혼공컴운

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

by ahrelee 2024. 7. 15.
3주차 
7/15 ~ 7/21
진도 Chapter 06 ~ 08
기본 숙제(필수) p. 185의 확인 문제 3번, p. 205의 확인 문제 1번 풀고 인증하기
추가 숙제(선택) Ch.07(07-2) RAID의 정의와 종류를 간단히 정리해 보기

 

"주기억장치(메인메모리)의 종류에는 크게 RAM과 ROM 두 가지가 있고, '메모리'라는 용어는 그 중 RAM을 지칭하는 경우가 많다."

 

CPU는 실행 / RAM은 실행할 대상을 저장 (전원 off 시 내용 기억 X) / 보조기억장치

 

그렇다면 휘발되는 저장 장치인 RAM의 용량은 어떤 장점을 가지고 있을까요? 다다익RAM 8GB

책장 예시

 

캐시메모리 -> SRAM이라서 휘발된다고 하는데, 뭔가 리부팅 후에도 데이터가 유지되는 느낌이었던 적이 ?? -> 일부 데이터를 보조 기억장치에 저장해두고, 재시작 시 이를 불러와서 캐시나 메모리에 로드 -> 보조 기억장치에 캐시메모리의 원본 데이터가 항상 존재...

 

자주 사용하거나 반복되는 작업

대기 시간 개선, 처리량 증가, 전력 소비 감소, 안정성 향상 / 적중률

캐시 메모리의 용량 및 CPU 성능 확인하기 위해서는 CPU-Z 프리웨어 사용

 

06. 메모리와 캐시 메모리

06-1. RAM의 특징과 종류

1) RAM의 특징

 

(1) 휘발성 저장 장치; RAM

  • 전원을 끄면 저장된 데이터가 사라지는 저장 장치
  • RAM(실행할 대상을 저장)

+) 비휘발성 저장 장치; 보조기억장치

  • 전원이 꺼져도 데이터가 유지되는 저장 장치
  • 보조기억장치(보관할 대상을 저장)

2) RAM의 용량과 성능

  • RAM의 용량이 크면 많은 프로그램동시에 실행하는 데에 유리함.
  • 자주 사용하는 데이터를 RAM에 미리 캐시할수 있어 데이터 처리 속도 빨라짐.
  • CPU가 저장된 프로그램을 필요할 때마다 '바로' 가져다가 사용할 수 있음.

3) RAM의 종류

 

(1) DRAM

  • Dynamic Random Access Memory
  • 가장 일반적으로 사용되는 RAM 유형
  • 데이터의 소멸을 막기 위해 주기적으로 리프레시(refresh)를 하여 데이터를 유지
  • 비교적 저렴하고, 높은 집적도로 대용량으로 설계하기 용이

(2) SRAM

  • Static Random Access Memory
  • 주로 캐시 메모리 등에 사용
  • 시간이 지나도 저장된 데이터가 소멸되지 않음(전원 켜져있는 동안에 한함.). ; 전원이 꺼지면 휘발됨.
  • 빠른 접근 속도
  • DRAM에 비해 집적도가 낮고, 소비 전력이 크며, 가격이 높음. -> 대용량으로 설계할 필요는 없으나 빨라야 하는 장치

(3) SDRAM

  • Synchronous Dynamic Random Access Memory
  • DRAM의 성능을 향상시킨 버전
  • 클럭 신호와 동기화되어 클럭 타이밍에 맞춰 CPU와 데이터를 주고받을 수 있음.
  • SDR SDRAM(Single Data Rate SDRAM): 한 클럭당 하나씩 데이터를 주고받을 수 있는 SDRAM

(4) DDR SDRAM

  • Double Data Rate Synchronous Dynamic Random Access Memory
  • SDRAM의 발전된 형태로 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
  • 현재 주로 사용되는 메모리 형태
  • SDR SDRAM의 두 배의 대역폭
  • DDR2 SDRAM: DDR SDRAM의 두 배의 대역폭, SDR SDRAM의 네 배의 대역폭
  • DDR3 SDRAM: DDR2 SDRAM의 두 배의 대역폭, SDR SDRAM의 여덟 배의 대역폭
  • DDR4 SDRAM: DDR3 SDRAM의 두 배의 대역폭, SDR SDRAM의 열여섯 배의 대역폭

 

 

메모리 내에 주소 체계는 두 가지가 있다

그럼 왜 나눠 있는지? 서로 변환은 가능한지? 

 

메모리에 저장된 값은 시시각각 변함 ; 새롭게 실행되는 프로그램은 새롭게 적재, 실행이 끝나면 삭제, 같은 프로그램도 적재 주소가 그때마다 다름.

 

물리 주소 보는 방법

- /proc/[PID]/pagemap 파일 사용하기 (Linux) : 각 프로세스마다 페이지 매핑 정보

- /proc/iomem 파일 : 시스템의 전체 메모리 맵

-> cat /proc/iomem

$ cat /proc/iomem
00000000-00000fff : reserved
00001000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000f0000-000fffff : reserved
00100000-bfedffff : System RAM
...

 

커널 모듈, 장치 드라이버 프로그래밍 // 물리 주소 사용

 

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

1) 물리 주소와 논리 주소

 

(1) 물리 주소

  • 정보가 실제로 저장된 하드웨어상의 주소를 의미
  • 메모리가 사용하는 주소

(2) 논리 주소

  • CPU실행 중인 프로그램이 사용하는 주소
  • 실행 중인 각각의 프로그램에 부여된 0번지부터 시작되는 주소

(3) 물리 주소와 논리 주소의 관계

  • 논리 주소는 MMU에 의해 물리 주소로 변환됩니다.
  • MMU(Memory Management Unit; 메모리 관리 장치): CPU가 발생시킨 논리 주소 + 베이스 레지스터 값 = 물리 주소
  • 베이스 레지스터: 프로그램의 첫 물리 주소(시작점)
  • 논리주소: 프로그램 시작점으로부터 떨어진 거리

16강. 메모리의 주소 공간 - 물리 주소와 논리 주소 / https://www.youtube.com/watch?v=_mQNCRA1fVA

 

2) 메모리 보호 기법

 

(1) 한계 레지스터

  • 논리 주소의 최대 크기를 정의하는 레지스터
  • 프로그램 영역을 침범할 수 있는 명령어는 위험(논리 주소 범위를 벗어나는 명령어 실행을 방지)
  • 베이스 레지스터 값 <= 프로그램의 물리 주소 범위 < 베이스 레지스터 + 한계 레지스터 값

16강. 메모리의 주소 공간 - 물리 주소와 논리 주소 / https://www.youtube.com/watch?v=_mQNCRA1fVA

 

  • 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 보호
  • CPU가 메모리에 접근하기 전에 논리 주소가 한계 레지스터보다 작은지 검사
    • Yes (작은 경우): 메모리 관리 장치(MMU)가 베이스 레지스터 값과 논리 주소를 더하여 물리 주소를 생성
    • No (큰 경우): 인터럽트(트랩)가 발생하여 프로그램이 비정상 종료되거나 예외 처리가 수행

 

CPU의 메모리 접근 시간은 CPU의 연산 속도보다 느리다

 

CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.

속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.

레지스터 vs 메모리(RAM) vs USB 메모리

 

06-3. 캐시메모리

1) 저장 장치 계층 구조 ; memory hierachy

  • CPU에 얼마나 가까운가를 기준으로 계층적으로 나타낼 수 있음.

  • 기본 원칙
    • CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다.
    • 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다.
  • 속도: 레지스터 > 캐시 메모리 > 메모리 > 보조 기억 장치
  • 용량: 보조 기억 장치 > 메모리 > 캐시 메모리 > 레지스터
  • 가격: 레지스터 > 캐시 메모리 > 메모리 > 보조 기억 장치

 

2) 캐시 메모리

 

(1) 캐시메모리

  • CPU의 연산 속도와 메모리의 접근 속도의 차이를 줄이기 위한 SRAM 기반의 저장 장치
  • CPU(코어)에 가까운 순서대로 계층을 구성

 

  • 코어 내부: 코어마다 고유한 캐시 메모리로 할당
    • L1 캐시: 코어 내부에 위치, 매우 빠르고, 용량이 작음.
    • L2 캐시: 코어 내부에 위치, L1 캐시보다 속도가 느리지만, 용량이 큼.
  • 코어 외부: 여러 코어가 공유하는 형태
    • L3 캐시: 코어 외부에 위치, 여러 코어가 공유, L2보다 느리지만 용량이 큼.
  • 분리형 캐시: 명령어만 저장하는 L1I 캐시와 데이터만을 저장하는 L1D 캐시로 분리

(2) 멀티코어 프로세서의 캐시 메모리

  • 멀티코어의 경우 데이터 일관성이 깨질 수 있는 위험이 있음.
  • 이를 방지하기 위해 코어 간의 데이터를 sync 하는 작업을 함.

3) 참조 지역성 원리

 

(1) 참조 지역성 원리

  • CPU가 자주 사용할 법한 내용예측해서 캐시 메모리에 저장
  • 시간 지역성 (Temporal Locality): 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
    • 예시: 반복문에서 동일한 변수에 반복적으로 접근하는 경우
  • 공간 지역성 (Spatial Locality): 접근한 메모리 공간 근처를 접근하려는 경향
    • 예시: 배열의 요소를 순차적으로 접근하는 경우

(2) 캐시 동작

  • 캐시 히트 (Cache Hit): 예측이 맞아 CPU가 캐시 메모리에 저장된 값을 활용한 경우
  • 캐시 미스 (Cache Miss): 예측이 틀려서 CPU가 메모리에 접근해야 하는 경우
  • 캐시 적중률 (Cache Hit Rate): 캐시 적중률이 높을수록 캐시 메모리가 효과적으로 동작하고 있음을 의미
    • 계산 방법: 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

 

07. 보조기억장치

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

1) 하드 디스크

하드디스크

자기디스크

플래터

스핀들

RPM

헤드

디스크 암

트랙

섹터

블록

실린더

하드 디스크가 저장된 데이터에 접근하는 시간: 탐색 시간 회전 지연 전송 시간 

 

2) 플래시 메모리

NAND 플래시 메모리 

SLC, MLC, TLC

Free, Invaild, Valid

07-2. RAID의 정의와 종류

1) RAID의 정의 

 

 

 

기본 숙제(필수)

[p. 185의 확인 문제 3번]

더보기

3. 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.

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

 

[p. 205의 확인 문제 1번]

더보기

1. 저장 장치 계층 구조 도식도를 채우세요.

 

추가 숙제(선택)

 
[ Ch.07(07-2) RAID의 정의와 종류를 간단히 정리해 보기 ]


3주차 공부 완료!

이번주는 강의 듣기에 집중하고, 블로그 정리는 추후에 하기로 결정했다.

이번주에는 메모리와 캐시메모리 등 메모리에 대해서 공부한 후,

보조기억장치, 입출력장치 등 하드웨어적인 내용까지 공부하였다.

보통 컴퓨터를 공부하는 사람은 컴퓨터 자체에 관심이 많은 경향이 있는데,

나는 그 관심이 소프트웨어에 치우쳐져 있어 하드웨어적인 공부가 필요했다.

이번 기회에 그것을 할 수 있어서 좋았다.

 

4주차도 파이팅!