이야기박스
메모리 복습 본문
§ 지역성의 원칙 ( Principle of Locality )
○ 시간적 지역성 ( temporal locality )
: 만약 어떤 항목이 참조되면, 곧바로 다시 참조되기 쉬운 성질
○ 공간적 지역성 ( spatial locality )
: 어떤 항목이 참조되면, 그 근처에 있는 다른 항목들이 참조될 가능성이 높음
§ 메모리 계층구조( Memory hierarchy )
: 여러 계층의 메모리를 사용하는 구조. 프로세서로부터 거리가 멀어질수록 메모리의 크기와 접근 시간이 증가
§ 용어
○ 블록 (Block) : 캐시에 있을 수도 있고, 없을 수도 있는 정보의 최소 단위
○ 적중률 (hit rate/ratio) : 메모리 계층구조의 특정 계층에서 찾을 수 있는 메모리 접근의 비율
○ 실패율 (miss rate) : 메모리 계층구조의 특정 계층에서 찾을 수 없는 메모리 접근의 비율 (1-적중률)
○ 적중시간 (hit time) : 메모리 계층구조의 한 계층에서 접근하는데 필요한 시간
--> 접근이 적중인지 실패인지를 결정하는데 필요한 시간 포함
○ 실패 손실 (miss penalty) : 하위 계층에서 상위 계층으로 블록을 인출하는데 걸리는 시간
** 계층 i+1에 존재하지 않는 데이터는 계층 i에 존재할 수 없다.
§ 직접 사상 ( Direct mapped )
: 각 메모리의 위치가 캐시 내의 정확히 한 곳에만 사상되는 캐시구조
○ 태그 (Tag) : 특정 계층에서 해당 블록이 요청한 워드와 일치하는지를 알려주는 주소 정보를 담고 있는 필드
○ 유효 비트 (Valid bit) : 특정 계층에서 해당 블록이 유효한 데이터를 포함하는지 알려주는 필드
○ 캐시 전체 비트 구하기
( 가정 )
32비트 주소
캐시는 2^n 개 블록 --> n 비트 인덱스
캐시 블록 크기 : 2^m 워드 = 2^(m+2) 바이트
--> 태그 필드 크기 = 32 - ( n+m+2)
- 직접 사상 캐시의 전체 비트 수
§ 실패 손실 (Miss Penalty)
: 메모리 계층구조의 다음 하위계층에서 블록을 가져오고 캐시에 적재하는데 걸리는 시간
Miss Penalty = block fetch time + cache load time
= 블록을 가져오는데 걸리는 시간 + 전송시간
if) 블록의 크기가 증가한다면,
--> 전송시간 증가 --> 실패 손실 증가
반면에 실패율은 감소하게 된다.
* 그러나 실패 손실의 증가가 실패율 감소를 압도하게 되면 캐시의 성능 또한 감소
- 실패 손실 줄이는 방법
: 지연시간은 조치를 취하기 힘들기 때문에, 전송 시간의 일부를 줄이므로서 조치
==> Early restart : 블록 전체를 기다리지 않고 요청된 워드가 도달하면 곧바로 실행
==> Requested word first : 요청한 워드를 먼저 메모리에서 캐시로 전송. 이후 다음 주소부터 순서대로 전송 후 나머지는 처음부터 전송
§ 쓰기의 처리
○ 즉시 쓰기 ( write-throrugh )
: 쓰기가 항상 캐시와 하위 계층을 갱신하는 방식
--> 항상 두 계층의 데이터가 일치함을 보장
--> 성능저하가 생김 (항상 써야 하므로)
○ 쓰기 버퍼 ( write-buffer )
: 메모리에 쓰이기 위해 기다리는 동안 데이터를 저장하는 큐
○ 나중 쓰기 ( write-back )
: 캐시에 있는 블록의 값만 갱신하여 쓰기 수행
그 블록이 교체될 때, 메모리 계층구조의 하위 계층에 갱신된 블록이 쓰임
--> 좋은 성능을 가짐
--> write-through보다 구현이 힘듬
○ 쓰기 실패 시의 정책
- 쓰기 할당 (write allocate) : 전체 블록을 메모리에서 읽어온 후, 쓰기 실패를 발생시킨 워드만 덮어씀
- 쓰기 비할당 (no write allocate) : 메모리에 있는 블록의 해당 영역만 갱신. 캐시에는 쓰지 않음
§ 메모리 지연
○ Memory-stall clock cycles
= read-stall clock cycles + write-stall clock cycles
○ Read-stall cycles
= (reads/program) * read miss rate * read miss penalty
○ Write-stall cycles
= (writes/program) * write miss rate * write miss penalty + write buffer stalls
§ 성능에 관하여
○ CPU performance가 증가하려면
--> miss penalty가 중요
○ CPI가 감소하려면
--> 메모리 지연 시간에 큰 영향
○ Clock rate 의 증가는
--> 메모리 지연의 숫자와 관련
'Computer & Data > Computer Architecture' 카테고리의 다른 글
10진수 - 2진수 (hexadecimal - binary) (0) | 2017.11.24 |
---|---|
RAID (0) | 2017.11.04 |
데이터 패스 (0) | 2017.10.20 |
메모리 복습2 (0) | 2017.10.19 |