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로 전달
'시스템⚙️ > 이론' 카테고리의 다른 글
전처리기 (0) | 2024.10.20 |
---|---|
프로그램의 메모리구조 (5) | 2024.09.21 |
프로젝트 빌드 과정 (0) | 2024.08.29 |
프로그래밍 언어 (1) | 2024.08.28 |
버전 관리 시스템(Version Control System) (1) | 2024.08.27 |