이야기박스

메모리 복습 본문

Computer & Data/Computer Architecture

메모리 복습

박스님 2017. 10. 19. 17:08
반응형

§ 지역성의 원칙 ( 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