본문 바로가기

Parallel/Parallel Programing

캐시

지역성의 원칙

- 최근 사용된 데이터 또는 명령어가 재사용되거나 근접한 데이터 또는 명령어가 재사용 됨

     -> 예측 가능

- 시간적 지역성(temporal locality)

- 최근에 접근한 데이터는 조만간 다시 접근할 가능성이 높음

- 상대적으로 작은 시간 이내에 접근 가능

- 공간적 지역성(spatial locality)

- 가까운 위치에 있는 데이터는 함께 접근 될 가능성이 높음

- 상대적으로 가깝고 작은 시간 이내에 접근 가능




데이터

- 공간의 지역성

- 배열 요소(A[i])를 연속하여 접근 


- 시각적 지역성

- 각 이터레이션마다 sum을 접근




코드

- 시간적 지역성

- 명령어들을 순서대로 접근

- 공간적 지역성

- 루프를 반복적으로 접근




메모리 계층

- 저장소의 계층적 배열

- 접근의 지역성을 이용

- 빠르게 저장하는 기술

- 바이트당 단가가 비싸고 적은 용량을 가짐

- CPU와 메인 메모리 사이의 속도차는 커지고 있음



캐싱

- 시간적 지역성 이용

- 최근에 접근한 지역의 내용을 기억

- 시간적 지역성 이용

- 최근에 접근한 지역의 블록을 기억

- 캐시 블록 = 캐시 라인

- 캐시의 기본 단위

- 다수의 바이트 또는 워드

- 블록 b에 저장된 아이템 d가 필요할 경우

- 캐시 히트(hit)

- 블록 b를 k레벨 캐시에서 찾음

- 캐시 미스(miss)

- 블록 b는 k레벨 캐시에 있지 않음

- k레벨 캐시는 블록 b를 k+1레벨에서 가져와야 함

- 만약 k레벨 캐시가 가득 찼다면, 그 캐시의 한 블록이 블록 b로 대체 됨



CPU와 메인 메모리 사이의 L1캐시



일반적인 캐시의 구조

- 캐시 크기 = Lines * Set * byte

- 세트(Set)은 주어진 블록이 위치할 수 있는 캐시 블록의 모음



캐시에서 데이터의 위치

- 만약 지정된 세트에서 유효한 캐시라인이 저장하고 있는 태그(tag)비트가 요청한 주소의 태그 비트와 같다면,

그 주소의 데이트는 캐시에 있음



직점 사상 캐시(Direct - mapped Caches)

- 세트당 하나의 캐시 라인

- 가장 단순함

- 특정 데이터 블록은 캐시에서 오직 한 위치에만 있을 수 있음

 - 대체(replacement)는 간단함

- 동인한 캐시 라인에 대해서 데이터 블록 간 충돌이 발생할 수 있음

'Parallel > Parallel Programing' 카테고리의 다른 글

[스터디]OpenMP Parallel for  (0) 2013.10.02
찾은 자료들  (0) 2013.09.30
숙제  (0) 2013.09.25
계산노드 사용  (0) 2013.09.24