jun-wiki

View My GitHub Profile

Posts (Latest 10 updated) :
Read all
Contents:
  1. 6 저장 계층
    1. 6.1 저장 기술
      1. 6.1.1 RAM
      2. 6.1.2 디스크 저장 장치
      3. 6.1.3 SSD
      4. 6.1.4 저장 기술 동향
    2. 6.2 지역성
      1. 6.2.1 프로그램 데이터 참조의 지역성
    3. 6.3 메모리 계층 구조

csapp 6 했다


6 저장 계층

메모리 구조에 대한 거 나온다

솔찌 이번주 C언어 배우느라 힘들어

대충 할 계략이다


6.1 저장 기술

6.1.1 RAM

  • SRAM(Static RAM): 전원 연결된 동안 데이터 유지하며, DRAM보다 빠르지만 밀도 낮고 비싸다

  • DRAM(Dynamic RAM): 데이터 주기적으로 새로고침해줘야 하며, SRMA보다 느리고 전기도 많이 먹지만 싸고 밀도 높다


6.1.2 디스크 저장 장치

디스크는 작업용 저장 장치로 용량이 기가막힌다

그대신 기가막히게 느려 SRAM 보다 백만배, DRAM보다 십만배 느리다

  • 디스크 구성 요소 :
    • 플래터(platters), 표면(surfaces), 스핀들(spindle), 트랙(tracks), 섹터(sectors), 실린더(cylinders)등
  • 디스크 접근 시간(Disk access time) :
    탐색 시간(seek time), 회전 지연(rotational latency), 전송 시간(transfer time)의 합으로 구성


6.1.3 SSD

움직이는 부품 없는 저장 장치다
회전식 디스크보다는 빠르지만 RAM보다는 느리다

데이터는 페이지 단위로 읽고 쓰이며, 쓰기전에 해당블록 다 지워야 한다


6.1.4 저장 기술 동향

다양한 저장 기술은 가격과 성능면에서 하난 포기해야한다
(SRAM > DRAM > SSD > 회전식 디스크 순으로 빠르고 비쌈)

CPU와 메인 메모리간 속도격차는 벌어지고 있으며, 이는 SRAM기반 캐시를 통해 해결한다


6.2 지역성

지역성은 캐싱 시스템과 연관이 있다

최근에 참조된 데이터 항목이나 그 근처의 데이터가 다시 참조될 확률이 높다는 거니 이를 통해 캐싱~

지역성엔 두가지 유형이 있다

  • 시간 지역성:

    • 최근에 참조된 항목이 가까운 미래에 다시 참조될 “가능성”
  • 공간 지역성:

    • 최근에 참조된 항목 근처의 항목이 가까인 미래에 참조될 “가능성”


6.2.1 프로그램 데이터 참조의 지역성

지역성은 변수의 사용 패턴을 분석하여 평가한다

loop내의 sum의 경우는 시간지역성, 썼던 걸 다시 쓰니 시간지역성이 좋고

배열 v의 순차적 접근은 공간 지역성이 좋다


6.3 메모리 계층 구조

핵심 아이디어는
작고 빠르며 비싼 저장 장치를 계층의 상위에 두고,
크고 느리며 저렴한 저장 장치를 하위에 두는 것

  • 캐시는 느린 놈들을 위한 임시 영역으로 작고 빠르다

  • 캐싱 원리:
    데이터는 블록 단위로 계층 간에 복사된다

    • 캐시히트:
      요청된 데이터가 캐시에 있음

    • 캐시 미스:
      요청된 데이터가 캐시에 없어 가져와 캐시에 저장하고 CPU에 반환


  • 캐시 미스의 종류:

    • 강제 미스, 콜드 미스
      캐시가 비어있어 발생

    • 용량 미스
      캐시가 너무 작아서 못담을때 발생

    • 충돌 미스
      여러 블록이 동일한 캐시에 몰릴때 발생