1. 정의

- 컴퓨터 데이터 스토리지(computer data storage)

- 프로그램과 데이터를 영구적 / 일시적으로 저장하는 장치

* 영구적 장치: PC 전원을 꺼도 데이터가 휘발되지 않는 장치 ex) usb, dvd, ROM, HDD, SSD, M.2

* 일시적 장치: PC 전원을 끄면 데이터가 휘발되는 장치 ex) RAM, CPU

2. 기억장치의 종류

1) 주기억장치(Primary Memory)

- 1차 메모리

- 현재 CPU가 처리 중인 데이터와 명령이 저장되는 곳

- 일반적으로 기억장치라고 하면 1차메모리인 RAM을 가리킴

- ex) RAM(Random Access Memory), ROM(Read Only Memory)

 

(1) RAM

- OS의 허가 하에 사용자가 자유롭게 내용을 읽고 쓰고 지울 수 있는 기억장치

- 램의 구성

SPD Hub : 각 칩셋들의 상태관리 ex) 온도, 클럭 등

Resistors : 저항기 - 전류 흐름 컨트롤

PCB : 인쇄 회로 기판 - 전류 통로

PMIC : 각 부품들에 전력 분배

Inductors : 상황에 따라 전압 변경

Capacitors : 이진수로 기록 처리 담당

DRAM : 명령어 + 데이터가 기록되는 곳

Module Key : 메인보드와의 호환성을 위한 홈

 

- 종류

: SRAM과 DRAM

비교항목 SRAM(Static RAM) DRAM(Dynamic RAM)
저장방식 정적저장
- pc에 전원이 공급되고 있다면 데이터가 사라지지 않음
동적저장
- 저장된 데이터가 시간의 흐름에 따라 동적으로 사라지기 때문에 데이터 유지를 위한 주기적인 리프레시 필요
접근속도 빠른 데이터 접근 가능 SRAM에 비해 상대적으로 느림
: 데이터의 리프레시 과정이 있기 때문
전력소비 DRAM에 비해 상대적으로 높음
: 전원 공급이 있을 때만 데이터가 사라지지 않기 때문
상대적으로 낮음
: 비교적 낮기에 대용량 데이터 저장에 유리
종류 Cache Memory
- CPU와 주메모리 사이에 위치해 CPU가 자주 사용하는 데이터를 빠르게 접근할 수 있도록 도와주는 메모리

Register Memory
- CPU내부에서 데이터와 명령어를 신속하게 저장/처리하는 초고속 메모리
SDRAM(Synchronous DRAM)
- 클럭 신호와 동기화 되어 CPU와 데이터 송수신하는 동적메모리
- DRAM에서 한 단계 발전한 메모리

DDR SDRAM(Double Data Rate SDRAM)
- SDRAM의 대역폭을 넓혀 클럭 신호 당 두 번씩 CPU와 데이터 송수신 하는 고속 메모리
- SDRAM에서 한 단계 발전한 메모리

 

- 어떠한 프로그램을 실행시킬 때에는 메모리가 필요해 RAM에서 1차적으로 메모리를 할당

   : RAM의 용량 부족이거나 여유공간을 초과한 경우, 보조기억장치(ex) M.2, SSD, HDD) 사용

 

2) 보조기억장치(Secondary Memory)

- 2차 메모리

- 설치된 프로그램 / 각종 파일 / 데이터를 영구적으로 저장하는 곳

- ex) M.2, SSD, HDD, ...

 

3) 임시 기억장치(Buffer Memory)

- CPU와 RAM사이의 속도 차이를 보완하기 위한 초고성능 버퍼 메모리

- ex) Cache, Register Memory

3. 기억장치의 데이터 이동 속도

   SRAM                                DRAM                       비휘발성 저장장치          

4. 기억장치의 메모리 접근

- CPU가 특정 메모리 주소의 데이터를 캐시 메모리에 요청해 데이터가 있는지 없는지 확인하는 과정

- 캐시메모리에서 찾는 데이터가 있으면 캐시히트 / 없으면 캐시미스라고 함

 

1) 캐시히트(Cash Hit)

(1) 정의

- CPU에서 요청한 데이터가 L1 ~ L3의 캐시메모리 안에 존재할 경우 발생

 

(2) 과정



- CPU에서 요청한 데이터를 캐시 컨트롤러가 캐시 메모리에서 해당 데이터 존재하는지 확인

 

- L1 캐시메모리부터 L3캐시메모리까지 데이터가 있는지 확인하는데

  L1 ~ L3 캐시메모리 내에서 해당 데이터를 찾았다면 캐시 히트 발생

 

- 캐시히트가 발생하면 CPU의 연산 유닛이 즉시 사용할 수 있도록 연산 수행

 

- 캐시메모리에서 발견한 데이터를 레지스터 메모리에서 연산

 

 

 

2) 캐시미스(Cash Miss)

(1) 정의

- CPU에서 요청한 데이터가 L1 ~ L3의 캐시메모리 안에 존재하지 않을 경우 발생

 

(2) 과정

 

- CPU에서 Cache Controller에 원하는 데이터 존재하는지 확인 요청

 

- Cache Controller가 L1에서 요청된 데이터 검색

 

- 요청한 데이터를 L1에서 검색했는데 못 찾음

 

- 요청한 데이터를 L2에서 검색했는데 못찾음

 

- 요청한 데이터를 L3에서 검색했는데 못찾음

 

- 결국 RAM에서 데이터 읽어서 읽어온 데이터를 Cache Controller를 통해 각 캐시 레벨에 저장하고 CPU가 원하는 데이터를 CPU로 전달

 

 

728x90

'시스템⚙️ > 이론' 카테고리의 다른 글

전처리기  (0) 2024.10.20
프로그램의 메모리구조  (5) 2024.09.21
프로젝트 빌드 과정  (0) 2024.08.29
프로그래밍 언어  (1) 2024.08.28
버전 관리 시스템(Version Control System)  (1) 2024.08.27

+ Recent posts