기억장치 계층 구조
고속, 소용량, 고가
CPU 내부기억장치 ( 휘발성 )
CPU / 레지스터 - 플립 플롭
L1, L2 : Cache Memory - SRAM
CPU 외부기억장치 ( 비휘발성 - 주기억장치 제외)
L3 : 주기억장치 ( 휘발성 ) - DRAM, SDRAM, DDR3
L4 : 디스크 캐쉬 - SSD
디스크
CD / DVD ROM
저가 데이터
저속, 대용량, 저가
- 메모리 반도체
정보를 저장
- 비메모리 반도체
연산, 논리 작업 등의 정보처리를 목적, 기억장치 아니다
계층 간 미스 (Miss)
바로 아래 계층에 필요한 데이터가 없는 상황
CPU
Cache
RAM
SSD (.exe)
가상메모리는 SSD의 일부 공간을 사용
ex) 맵 데이터가 20기가이고, RAM이 16기가라면 RAM에서 맵을 모두 불러올 수 없다
따라서 하드의 일부 공간을 희생시켜서 마치 RAM의 공간인 것처럼 사용한다 -> 가상의 메모리
CPU(레지스터)에서 처리를 하려고 하는데 Cache에 데이터가 없으면 (1번째 미스) RAM으로 내려간다
RAM에도 없으면(2번째 미스) SSD까지 내려가서 데이터를 가지고 다시 올라간다 -> 시간 소요
Main Memory Access Time 최적화
접근 빈도 최소화 -> 메인 메모리에 접근하는 빈도수를 최소화한다
캐시 기억장치에 올려놓는 것
메모리 인터리빙
지역성
프로그램이 기억 장치 내 정보를 한 순간에 특정 영역을 집중적으로 참조하는 특성 ( 정보를 퍼지게 하지 않음 )
시간적 지역성
최근 액세스된 프로그램이나 데이터가 가까운 미래에 다시 액세스 될 가능성이 높다 - 반복문
공간적 지역성
인접하게 저장된 데이터 - 배열, 테이블, 맵
순차적 지역성
명령어들은 기억장치에 저장된 순서대로 인출되어 실행 - 절차적 프로그래밍 ( 기능 중심 )
지역성 활용 사례
S/W 관점
선인출( pre-fetching ) : 캐시에서 곧 hit될 것 같은 부분을 미리 가져와서 miss를 방지
예상 paging
워킹셋
LRU, LFU 교체 정책
H/W 관점
기억장치 계층 구조
캐시메모리
CDN 서버
'> CS' 카테고리의 다른 글
[컴퓨터구조] 보조기억 장치 RAID, NAS, DAS, 입출력 장치 (0) | 2023.08.28 |
---|---|
[컴퓨터 구조] 캐시 메모리, 주기억장치 (0) | 2023.08.08 |
[컴퓨터 구조] 병렬 처리, 메모리 공유방식 (0) | 2023.07.12 |
[컴퓨터 구조] 시스템 구성 요소, CPU와 GPU (0) | 2023.07.11 |
[자료구조] 스택 구현 _ 1차원 배열 (C++) (0) | 2023.07.07 |