캐시 메모리
캐시 메모리는 ARM 프로세서 내부에 있는 특수 목적의 메모리로, 가장 최근에 참조되었던 혹은 참조될 가능성이 있는 명령어, 데이터를 저장하는데 사용한다. CPU는 읽고자 하는 데이터가 캐시 메모리에 있는 경우, 외부 메모리를 참조하지 않고 캐시에서 데이터를 읽어 오게 된다.
캐시 메모리의 속도는 CPU와 동일하게 빠른 속도로 동작하므로, 속도가 상대적으로 느린 외부 메모리를 참조하는 경우보다 더욱 빠르게 동작하며, 결과적으로 캐시 메모리를 참조하는 경우가 많을수록 명령어, 데이터를 읽는 동작속도는 최고성능을 발휘하게 되는 것이다.
라이트 쓰루(Write Through)
CPU가 특정 주소에 데이터를 쓰기 동작하는 경우를 고려해 봅시다. 캐시 메모리 안에 이미 해당 데이터가 존재하는 경우, 라이트 쓰루 방식은 캐시와 외부 메모리에 모두 데이터를 쓰기 동작한다. 즉, 쓰기 동작 시 캐시는 성능향상에 아무런 도움이 되지 못한다.
라이트 백(Write Back)
CPU가 특정 주소에 데이터를 쓰기 동작하는 경우를 고려합시다. 캐시 메모리 안에 이미 해당 데이터가 존재하는 경우, 라이트 백은 캐시에만 데이터 쓰기 동작을 수행한다. 따라서 캐시와 외부 메모리에 있는 데이터의 내용이 달라 불일치가 발생합니다. 이후 해당 데이터를 읽는 동작을 할 경우
에는 캐시의 데이터를 참조한다. 캐시에 써진 데이터는 캐시에서 제거될 때 외부 메모리에 써지게되어, 이전에 발생했던 캐시와 외부 메모리의 데이터 내용 불일치를 해결하게 된다.
캐시 일치(Cache Coherency)
캐시는 읽기 동작이 수행될 경우를 고려한 장치입니다. 쓰기 동작이 수행이 될 경우, 데이터의 내용을 외부 장치에 쓰는 동작은 캐시 메모리의 종류에 따라 다르다. 특정상황 하에서는 동일한 주소의 데이터가 캐시와 외부 메모리에 존재할 수 있는데, 이때 캐시에 저장된 데이터의 내용과 외부 메모리에 저장된 데이터의 내용이 불일치할 경우를 캐시 불일치라 부른다. 데이터를 참조하는 CPU가 이를 잘못하여 참조하면, 다른 내용의 데이터를 참조할 수 있으므로 이를 해결하기 위한 방법을 강구해야 한다.
: Samsung ARM의 경우 라이트 쓰루 방식을 사용하므로, 특별히 캐시 일치문제를 고려할 필요는 없다.
라이트 버퍼(Write Buffer)
캐시 메모리는 명령어, 데이터를 읽을 경우의 성능 향상을 도모하는 것이 목적인 반면, 쓰는 경우의 성능을 향상 시키고자 하는 것이 라이트 버퍼퍼이다. ARM7 프로세서의 내부에는 통상 32bit X 4의 크기를 갖는 라이트 버퍼를 내장하고 있습니다. CPU가 쓰기 동작을 하는 동안에도 다른 처리를 계속 할 수 있도록, 어드레스와 데이터는 외부 장치가 아닌 라이트 버퍼에 저장됩니다. 이후 CPU는 라이트 버퍼의 쓰기가 끝날 때 까지 기다릴 필요 없이, 계속 명령어를 수행할 수도 있으므로 성능향 상을 꾀할 수 있고, 라이트 버퍼의 내용은 버스의 사용권한이 라이트 버퍼에 주어졌을 경우, 라이트 버퍼의 내용이 외부 장치에 쓰여지게 된다.
'공부하자 > 알면 유용한정보' 카테고리의 다른 글
ARM 프로세서의 장점 (0) | 2016.11.23 |
---|---|
System On a Chip (0) | 2016.11.23 |
프로세서 (Processor) 종류 (0) | 2016.11.23 |
Bus System (0) | 2016.11.23 |
불펌금지 스크립트(우클릭금지) (2) | 2016.02.24 |