csapp 6 했다
메모리 구조에 대한 거 나온다
솔찌 이번주 C언어 배우느라 힘들어
대충 할 계략이다
SRAM(Static RAM): 전원 연결된 동안 데이터 유지하며, DRAM보다 빠르지만 밀도 낮고 비싸다
DRAM(Dynamic RAM): 데이터 주기적으로 새로고침해줘야 하며, SRMA보다 느리고 전기도 많이 먹지만 싸고 밀도 높다
디스크는 작업용 저장 장치로 용량이 기가막힌다
그대신 기가막히게 느려 SRAM 보다 백만배, DRAM보다 십만배 느리다
움직이는 부품 없는 저장 장치다
회전식 디스크보다는 빠르지만 RAM보다는 느리다
데이터는 페이지 단위로 읽고 쓰이며, 쓰기전에 해당블록 다 지워야 한다
다양한 저장 기술은 가격과 성능면에서 하난 포기해야한다
(SRAM > DRAM > SSD > 회전식 디스크 순으로 빠르고 비쌈)
CPU와 메인 메모리간 속도격차는 벌어지고 있으며, 이는 SRAM기반 캐시를 통해 해결한다
지역성은 캐싱 시스템과 연관이 있다
최근에 참조된 데이터 항목이나 그 근처의 데이터가 다시 참조될 확률이 높다는 거니 이를 통해 캐싱~
지역성엔 두가지 유형이 있다
시간 지역성:
공간 지역성:
지역성은 변수의 사용 패턴을 분석하여 평가한다
loop내의 sum
의 경우는 시간지역성, 썼던 걸 다시 쓰니 시간지역성이 좋고
배열 v
의 순차적 접근은 공간 지역성이 좋다
핵심 아이디어는
작고 빠르며 비싼 저장 장치를 계층의 상위에 두고,
크고 느리며 저렴한 저장 장치를 하위에 두는 것
캐시는 느린 놈들을 위한 임시 영역으로 작고 빠르다
캐싱 원리:
데이터는 블록 단위로 계층 간에 복사된다
캐시히트:
요청된 데이터가 캐시에 있음
캐시 미스:
요청된 데이터가 캐시에 없어 가져와 캐시에 저장하고 CPU에 반환
캐시 미스의 종류:
강제 미스, 콜드 미스
캐시가 비어있어 발생
용량 미스
캐시가 너무 작아서 못담을때 발생
충돌 미스
여러 블록이 동일한 캐시에 몰릴때 발생