지역성의 원칙
- 최근 사용된 데이터 또는 명령어가 재사용되거나 근접한 데이터 또는 명령어가 재사용 됨
-> 예측 가능
- 시간적 지역성(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 |