Snooping protocol
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

Snooping Protocol PowerPoint PPT Presentation


  • 298 Views
  • Uploaded on
  • Presentation posted in: General

Snooping Protocol. 윤진훈. Snooping Protocol ?. □ 캐시 일관성 프로토콜 (cache coherence protocol) - 데이터 블록의 공유 상태를 추적 - 스누프 제어기를 이용해서 탐지 □ 쓰기 무효화 프로토콜 (write invalidation protocol) - 쓰기 수행 시 다른 복사본들을 무효로 만듬 □ 버스 감시 메커니즘 (bus watch mechanism)

Download Presentation

Snooping Protocol

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Snooping protocol

Snooping Protocol

윤진훈


Snooping protocol1

Snooping Protocol ?

□ 캐시 일관성 프로토콜 (cache coherence protocol)

- 데이터 블록의 공유 상태를 추적

- 스누프 제어기를 이용해서 탐지

□ 쓰기무효화 프로토콜 (write invalidation protocol)

- 쓰기 수행 시 다른 복사본들을 무효로 만듬

□ 버스 감시 메커니즘 (bus watch mechanism)

- coherence를 유지하기 위해 버스를 감시하는 하드웨어모듈 추가

□ 스누프 제어기 (snoop controller, bus watcher)

- 다른 프로세서에 의한 memory access를 검사하여, 그 결과에 따라 자신의

캐시 블록의 상태를 조절

- 각 캐쉬 블록들은 상태 비트를 가지며, 쓰기 방식과 프로토콜에 따라 틀림.


Write through coherence protocol

Write-Through coherence protocol

□ 프로세서가 캐시의 데이터를 수정하는 즉시, 메인 메모리에도 갱신

□ 스누프 제어기의 동작

- main memory에 write를 시도하는 adress가 자신의 캐시에 있는 지 검사하고,

존재한다면, 그 블록을 무효화(invalidate)시킨다.

- 프로세서가 무효화된 블록을 액세스하는 경우에는 cache miss 처리

□ 캐시 데이터의 상태

- 유효(V : Valid) 상태 : 캐시의 내용 = 메모리의 내용

- 무효(I : Invalid) 상태 : 캐시의 내용 ≠ 메모리의 내용


Write through 1

Write-Through (1)

프로세서 1

프로세서 2

P1

P2

V

Hi

V

Hi

Hi

메인 메모리

(1)두 캐시가 모두 유효한 상태


Write through 2

Write-Through (2)

프로세서 1

프로세서 2

P1

P2

Hi

V

V

Bye

I

Hi

상태 변경

탐지

Hi

Bye

메인 메모리

(2)P1이 Hi → Bye로 변경. 그에 따라 메인 메모리도 갱신되며, P2의 캐시

에 있는 Hi는 무효상태가 된다.


Write through 3

Write-Through (3)

프로세서 1

프로세서 2

P1

P2

I

Hi

V

Bye

V

Bye

Bye

메인 메모리

(3) P2가 Hi를 액세스하면, cache miss가 발생하여, 메인 메모리로부터

Bye가 읽혀져 오고, 상태는 V로 바뀐다.


Write back coherence protocol

Write-Back coherence protocol

□ 프로세서가 캐시의 데이터를 변경해도 메인 메모리의 내용은 갱신되지 않음.

□ 스누피 제어기의 동작

- 다른 스누피 제어기들이 시스템 버스를 감시해도 변경 사실을 알 수 없음

- 변경된 캐시의 스누피 제어기가 변경 사실을 다른 스누피 제어기들에게 통보

□ 신호

- 무효화 신호(invalidate signal) : 데이터의 변경 사실을 알려주기 위한 신호

□ MESI Protocol

- 수정(M : Modified) 상태 : 데이터가 수정(변경)된 상태

- 배타(E : Exclusive) 상태 : 유일한 복사본이고, 메인 메모리의 내용과 동일한 상태

- 공유(S : Shared) 상태 : 데이터가 2개 이상의 프로세서 캐시에 적재되어 있는 상태

- 무효(I : Invalid) 상태 : 데이터가 다른 프로세서에 의해 수정되어 무효가 된 상태


Mesi protocol state transition diagram

MESI Protocol state transition diagram

: 프로세스 동작에 의한 전이

: 다른 캐시의 변화에 의한 전이

I

E

(8) Write miss

(1) Read miss

(2) Write hit

(3) Read miss

(7) Read miss

(7) Read miss

(5) Invalidate signal

M

S

(4) Cache miss

(8) Write miss

(3), (4) Read miss

(5) Invalidate signal

(6) Write hit


Snooping protocol

(1) 데이터를 처음 읽는 경우

프로세서 1

프로세서 2

I

E

P1

P2

E

cat

M

S

cat

메인 메모리

(1) 읽기 실패 (read miss) : P1이 메인 메모리로부터 cat을 읽음. 메인 메모리로부터 cat을 읽어온 후, 상태를 배타(E)로 변경


Snooping protocol

(2) 캐시에 있는 데이터 변경

프로세서 1

프로세서 2

I

E

P1

P2

cat

E

M

milk

M

S

cat

메인 메모리

(2) 쓰기 적중 (write hit) : P1이 cat을 milk로 변경. milk로 수정한 후, 상태를 수정(M)으로 변경.


Snooping protocol

(3) 데이터가 공유되는 경우 1

프로세서 1

프로세서 2

I

E

P1

P2

E

S

cat

S

cat

1. 공유 신호 전달

2. 공유 읽기

탐지

M

S

cat

메인 메모리

(3) P1이 cat을 가진 상태에서, P2도 cat을 읽는 경우 읽기 실패 (read miss) : 메인 메모리에서 읽음.

P1의 스누프 제어기가 그 버스 동작을 확인하고, cat의 상태를 공유(S)로 변경

하고, P2로 공유 사실을 알리면 P2가 cat의 상태를 공유(S)로 설정


Snooping protocol

(4) 데이터가 공유되는 경우 2

프로세서 1

프로세서 2

I

E

P1

P2

M

S

milk

S

milk

2. 캐시간 전송

탐지

1. 메모리 읽기 취소

3. 메모리 갱신

M

S

cat

milk

메인 메모리

(4) (2)의 결과 상태에서, P2가 cat에 접근하는 경우

캐시 실패 (cache miss) : 메인 메모리에서 읽음.

P1의 스누프 제어기가 그 동작을 중단시키고, 자신의 데이터 milk를 P2로 캐시

간 전송(cache-to-cache transfer)하며, milk를 메인 메모리에도 갱신. 캐시 상태를 공유(S)로 변경


Snooping protocol

(4) 데이터가 공유되는 경우 2

프로세서 1

프로세서 2

I

E

P1

P2

M

S

milk

S

milk

2. 재시도

4. 읽기

탐지

1. 메모리 읽기 취소

3. 메모리 갱신

M

S

cat

milk

메인 메모리

(4) (2)의 결과 상태에서, P2가 cat에 접근하는 경우 (캐시간 전송 미지원)

캐시 실패 (cache miss) : 메인 메모리에서 읽음.

P1의 스누프 제어기가 그 동작을 중단시키고, P2로 재시도(retry) 요구

P1이 메인 메모리에 milk를 갱신하면 , P2는 milk를 읽고 캐시 상태를 공유(S)로 변경


Snooping protocol

(5) S 상태의 데이터를 변경하는 경우

프로세서 1

프로세서 2

I

E

P1

P2

cat

S

S

I

cat

M

milk

1. Invalidate 신호

3. 배타적 소유권 획득

2. 확인신호

M

S

cat

메인 메모리

(5) (3)의 결과 상태에서, P2가 cat을 새로운 값으로 갱신하는 경우

무효화 신호(invalidate signal) : P2가 버스를 통해 신호 발송 (브로드캐스트)

cat을 가진 캐시들은 cat의 상태를 무효(I)로 변경하고, 확인 신호 전송P2가 배타적 소유권 획득, P2가 cat을 새로운 값 milk로 갱신하고 상태를 수정(M)으로 변경


Snooping protocol

(6) M 상태의 데이터를 변경하는 경우

프로세서 1

프로세서 2

I

E

P1

P2

milk

I

cat

M

mouse

M

S

cat

메인 메모리

(6) (5)의 결과 상태에서, P2가 milk를 mouse로 변경하는 경우쓰기 적중(write hit) : 데이터만 변경되고, 상태는 불변


Snooping protocol

(7) I 상태의 데이터를 변경하는 경우

프로세서 1

프로세서 2

I

E

P1

P2

cat

I

M

M

vector

I

mouse

1. RWITM신호

2. mouse 전송

M

S

cat

메인 메모리

(7) (6)의 결과 상태에서, P1이 cat을 수정하려는 경우

읽기 미스(read miss) : 수정을 위한 읽기(read with intend to modify: RWITM)

P2가 mouse를 P1으로 보내주고, 데이터의 상태를 무효(I)로 변경

P1은 mouse를 vector로 수정하고, 상태를 수정(M)으로 변경


Snooping protocol

(7) I 상태의 데이터를 변경하는 경우

프로세서 1

프로세서 2

I

E

P1

P2

mouse

I

M

M

vector

I

mouse

1. RWITM신호

2. 재시도 요구

3. 메모리 갱신

4. 읽기

M

S

mouse

메인 메모리

(7) (6)의 결과 상태에서, P1이 cat을 수정하려는 경우 (캐시간 전송 미지원)

읽기 미스(read miss) : 수정을 위한 읽기(read with intend to modify: RWITM)

P2가 P1에게 retry 요구, 메인 메모리의 데이터 갱신, 데이터의 상태를 무효(I)로 변경

P1은 메인 메모리에서 읽은 mouse를 vector로 수정하고, 상태를 수정(M)으로 변경


Snooping protocol

(8) 데이터가 없는 프로세서가 수정하는 경우

프로세서 1

프로세서 2

I

E

P1

P2

E

I

cat

M

tiger

1. RWITM신호

2. 데이터 전송

M

S

cat

메인 메모리

(8) (1)의 결과에서 P2가 cat을 수정하는 경우

쓰기 실패 (write miss) : P2가 RWITM 시작

P1이 cat을 P2로 보내주고, 상태를 무효(I)로 변경

P2는 cat을 tiger로 수정하고, 상태를 수정(M)으로 변경


Mesi protocol state transition diagram1

MESI Protocol state transition diagram

: 프로세스 동작에 의한 전이

: 다른 캐시의 변화에 의한 전이

I

E

(8) 기존 프로세서 무효화

(1) 처음 읽기

(2) 처음 읽은 데이터를 변경

(3) 공유 상태로 변경

(7) 수정을 위한 읽기

후에, 내용 변경

(7) 기존 프로세서

무효화

(5) 기존 프로세서 무효화

(8) 다른 프로세서의

읽기 (없음)

M

S

(4) 캐시간 전송, 재시도

(3) 다른 프로세서의 읽기 (같음)

(4) 다른 프로세서의 읽기 (변경)

(5) 무효화 신호 브로드캐스트

후에, 내용 변경

(6) 내용 변경


Mei protocol

MEI Protocol

□ PowerPC 755 계열에서 사용.

□ 공유 상태가 없기 때문에 2개 이상의 프로세서에서 데이터를 읽을 경우 cost가 크다.

I

E

I

E

무효화 신호 발송

M

M

S

MEI protocol

MESI protocol


Msi protocol

MSI Protocol

□ 처음 read되어도 공유상태가 된다. 새로운프로세서의write에 대해 무효화 신호

를 날려야 한다.

I

I

E

무효 상태로 변경

무효화 신호

M

S

M

S

MSI protocol

MESI protocol


Moesi protocol

MOESI Protocol

  • □ AMD Opteron, UltraSPARC

  • □ O(owned) 상태 : 변경 상태의 캐시 블록을 다른 프로세서에서 읽을 경우 O 상

  • 태로 변경되며 캐시간 전송, 재시도처럼 메모리를 갱신하지 않는다.

  • □ 다른 프로세서의 read 요청 때마다 메모리에 쓰는 latency를 줄임.

I

E

I

E

O

메모리 갱신 안함

M

S

M

S

캐시간 전송, 재시도

기존 프로세서의 Response

MOESI protocol

MESI protocol

새로운 프로세서의 Request


Mesif protocol

MESIF Protocol

  • □ Intel Nehalem

  • □ F(forwarding) 상태 : 여러 프로세서에 공유된 캐시 블록에 접근하는 새로운

  • 프로세서에게 대표로 전달해주는 프로세서. 전달 후에는 F 상태를 넘겨준다.

  • - temporal locality : 새로 요청한 프로세서가 캐시 블록을 오래 가지고 있을 확률이 높음

  • - forwarding 상태를 바꿔줌으로써 Request 몰림 현상을 막는다.

F

S

S

S

S

S

기존 프로세서의 Response

MESIF protocol

MESI protocol

새로운 프로세서의 Request


  • Login