윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT

CPU 캐시의 line

Core 2 Duo E8400 의 경우 아래처럼 되어있다.

L1 Data cache           2 x 32 KBytes, 8-way set associative, 64-byte line size
L1 Instruction cache    2 x 32 KBytes, 8-way set associative, 64-byte line size
L2 cache                6144 KBytes, 24-way set associative, 64-byte line size

Core i7 2600K 의 경우 아래처럼 되어있다.

L1 Data cache           4 x 32 KBytes, 8-way set associative, 64-byte line size
L1 Instruction cache    4 x 32 KBytes, 8-way set associative, 64-byte line size
L2 cache                4 x 256 KBytes, 8-way set associative, 64-byte line size
L3 cache                8 MBytes, 16-way set associative, 64-byte line size

- line 이란 캐시 영역의 기본 단위다. 보통 4워드나 8워드를 단위로 사용하며 E8400에서는 16워드(64byte)를 사용한다. 32KBytes 는 512개의 라인이 있는 셈이다.

- [캐시 데이터 위치 결정 정책]중 하나가 set associative 다. 이외에도 fully associative, direct mapped 방식이 있다. E8400, 2600K의 경우 모두 set associative 방식이다.

- 메모리의 라인과 캐시의 라인이 n:1 매칭이 되면 direct mapped 가 되며, 나머지는 n:m 매칭이다.

- 쉽게 말해 direct mapped 의 경우 메모리의 특정 라인은 캐시의 특정 라인으로만 들어간다. 메모리의 특정 라인이 캐시의 모든 라인중 한곳에 들어갈 수 있으면 fully, 제한된 라인중 한곳에 들어갈 수 있으면 set 이 된다.

사용자 삽입 이미지

Direct Mapped, 2-Way Associative 방식의 설명. 출처: 위키피디아

- n-way 는 set associative 에서, 몇개의 라인을 1개의 셋으로 했느냐를 알려준다. 1-way set associative 는 결국 direct mapped 와 동일한 셈이다. 캐시의 라인 수와 way 수가 같다면  fully associative 이 된다. way는 메모리의 채널과 같은 개념이 아니다.

- 따라서 way수가 클수록, 구현이 어렵고, 속도가 떨어지며, 제조비용이 높아지지만 캐시의 효율성(miss rate 가 낮으면 효율이 좋음)이 좋아진다.