1.Computer System Overview(‘16. 3. 9.)
9] cache memory
- cpu의 instruction
execution 속도는 memory cycle 속도에 의해 제한된다.
(cpu의 처리속도에 비해 주 메모리의 속도가 아주 느리기 때문)
- cpu와 주 메모리 사이에 cache를 배치하여 문제 해결 가능(속도: cpu>cache>메모리)
- principle of locality(locality of reference) 때문에 작은 크기로
엄청난 효과를 지님
- 대부분의 메모리 접근은 특정한 위치의 근방에서 자주 일어나는 경향이 있다.
- cpu의 데이터 처리 단위는 word, 주 메모리도 word 단위로 구성되어 있음.
- cache는 Block(k word)단위로 데이터를 구성한다. 즉, 필요한 데이터를 포함하는 block을 cache에 저장하여, cpu의 주 메모리 접근을 최소화해 효율을
높인다.
- cpu와 cache(word 단위 transfer), cache와 main memory(block 단위 transfer)
10] cache read operation
1. cpu로부터 RA(read address) receive
2-1. 캐시에 해당 데이터를 포함한
block이 존재한다면, cpu에 전달
2-2. 캐시에 없다면, 주
메모리에서 해당 데이터 포함한 block에 접근, 캐시에
공간 할당.
3. cpu에 전달 및 캐시에 해당 블록 전송
+]
https://ko.wikipedia.org/wiki/CPU_%EC%BA%90%EC%8B%9C
CPU 캐시(CPU cache)는 CPU 구조에 메모리로 사용하도록 구성되었다. CPU 캐시는 메인
메모리에서 가장 자주 사용되는 위치의 데이터를 갖고 있는 크기는 작지만 빠른 메모리이다. 대부분의 메모리
접근은 특정한 위치의 근방에서 자주 일어나는 경향이 있기 때문에, 데이터를 크기는 작지만 속도가 빠른
캐시메모리에 복사해 두면 평균 메모리 접근 시간을 아낄 수 있다.
프로세서가
메인 메모리를 읽거나 쓰고자 할 때는, 먼저 그 주소에 해당하는 데이터가 캐시에 존재하는지를 살핀다. 만약 그 주소의 데이터가 캐시에 있으면 데이터를 캐시에서 직접 읽고, 그렇지
않으면 메인 메모리에 직접 접근한다. 이때 대부분의 프로세서는 메인 메모리에 직접 접근해서 전송된 데이터를
캐시에 복사해 넣음으로써 다음번에 같은 주소에 프로세서가 접근할 때 캐시에서 직접 읽고 쓸 수 있도록 한다.
11] cache design
- 캐시는 주 메모리의 일부분만 저장하므로 주소로 접근할 수 없다. 따라서 각 block에 메모리의 주소와 상태 등을 나타내는 tag를 달아서 관리한다.
- mapping
function : determines which cache location the block will occupy
(캐시에서 데이터를 찾을 때 이쯤에서 찾아~ 라고
알려주는 역할)
- replacement
algorithm: determines which block to replace(Least-Recently-Used)
- write
policy : multicore, multiprocessor system에서 cache
coherence 문제 발생
한
복사본이 갱신될 경우 가능한 한 빨리 모든 복사본이 갱신될 것을 보장해야 함.
댓글 없음:
댓글 쓰기