안녕하세요. 매일 IT, 밀릿입니다. 이번 포스팅에서는 CPU 성능을 이야기할 때 빠지지 않는 '캐시 메모리'에 대해 알아보려고 합니다. '캐시'라는 단어는 평소 인터넷이나 스마트폰을 사용하면서도 많이 접하는 단어였지만, 캐시 메모리는 익숙하지 않아 정확히 CPU에서 어디에 위치하고 어떤 기능을 담당하는지 파악이 되지 않았습니다. CPU에서 '캐시 메모리'가 성능에 어떤 영향을 미치는지, 캐시 메모리의 뜻과 구성을 한번 살펴보도록 하겠습니다.
앞서 말씀드렸다시피 '캐시'라는 단어는 컴퓨터 용어임에도 컴퓨터나 스마트폰을 이용하면서 반복적으로 접할 수밖에 없기 때문에 익숙하게 들립니다. '캐시(Cache)'는 웹페이지 접속에 관한 정보를 담은 데이터입니다. 가령 어떤 웹사이트를 자주 방문한다고 가정해보겠습니다. 웹사이트를 구성하는 요소에는 다양한 텍스트, 이미지, 스크립트 등이 존재하는데 접속할 때마다 이러한 정보들을 새로 인터넷을 통해 브라우저에 로딩하려면 시간이 많이 소요됩니다. 그럴 때 페이지를 구성하는 큰 틀이나 주요 정보들을 캐시 데이터로 사용자의 PC에 저장해두면 웹사이트에 재접속 시 해당 데이터를 통해 빠른 속도로 페이지를 로드할 수 있게 도와주게 됩니다.
처음 '캐시 메모리'라는 용어를 접했을 때 동일하게 '캐시'라는 용어가 사용된다는 점에서 '캐시 데이터'의 이용 속도 향상 역할과 유사할 것이라 짐작할 수 있었습니다. 역시 '캐시 메모리'는 데이터의 로드 속도를 향상시키기 위한 하나의 CPU 내 저장장치를 의미했습니다. 하지만 여전히 'L1', 'L2', 'L3' 등의 캐시 메모리를 나타내는 용어들은 이해하기가 쉽지 않았습니다. '캐시 메모리'의 구성과 역할을 이해하기 위해 CPU에 캐시 메모리가 도입된 배경을 살펴보았습니다.
우리가 자주 방문하는 웹사이트가 하나씩 있듯이, PC를 사용하면서 자주 이용하는 기능이나 동작이 존재합니다. 어떤 프로그램을 실행하게 되면 CPU는 해당 프로그램에 관련된 데이터들을 불러들여 연산 과정을 통해 데이터가 실행될 수 있도록 동작합니다. 하지만 매번 DRAM 저장장치에서 요청하는 데이터를 찾아내 전송하는 과정을 반복한다면 PC의 속도는 감소할 수밖에 없습니다. 이 과정을 단축하기 위해 CPU는 자주 사용하는 프로그램의 데이터를 CPU의 캐시 메모리에 저장하고 요청이 발생할 경우 DRAM이 아닌 캐시 메모리의 데이터를 빠르게 읽어 들여 시간을 단축할 수 있게 됩니다.
캐시 메모리와 함께 언급되는 'L1', 'L2', 'L3'은 메모리의 계층 구조를 의미합니다. 'L'은 'Level'의 약자입니다. 즉 Level 1 캐시 메모리는 CPU가 가장 먼저 탐색하는 저장소이며, 해당 메모리에서 원하는 데이터를 발견하지 못 할 경우 L2, L3 순으로 탐색범위를 확장합니다. L1 메모리는 CPU 코어와 함께 다이에 위치합니다. L2 메모리는 별도의 칩으로 내장되어 메인보드에 장착되기도 했으나 현재는 단일 다이에 복수의 코어와 함께 배치되는 것이 일반적입니다.
L1에 데이터가 저장되어 있다면 가장 빠른 속도로 로딩할 수 있습니다. 그렇다면 L1에 모든 데이터를 저장한다면 엄청나게 빠른 속도의 향상을 기대할 수 있을 것입니다. 하지만 L1 메모리는 현재 최대 64KB 용량에 불과하며 L2 메모리도 64KB부터 4MB 정도의 용량을 지원하는 것이 일반적입니다. 그 이유는 메모리의 단가에서 찾을 수 있습니다. 캐시 메모리는 CPU 가격 구성의 상당 부분을 차지합니다. 바로 DRAM과 달리 SRAM이라는 고속 데이터 처리 방식의 기술을 사용하기 때문입니다. 또한 SRAM은 용량 대비 크기가 크다는 단점이 있고, 캐시 메모리의 데이터 리딩 속도가 빠르다고 해도 메모리 용량과 로딩 속도는 반비례하므로 무턱대고 큰 용량의 캐시 메모리를 장착하는 것도 효율적이진 않습니다.
L3 메모리의 경우 8MB 수준의 데이터 저장 용량을 가지고 있지만 일반적으로 널리 이용되지는 않습니다. 앞서 말했듯이 L3 수준까지 데이터를 탐색하면 그만큼 많은 시간이 소요되므로 캐시 메모리 이용의 이점이 감소하게 되며, L1과 L2 메모리만으로도 대부분의 필요한 명령어와 데이터를 저장하고 읽어내는데 무리가 없기 때문입니다.
또한 캐시 메모리는 CPU와 DRAM 저장장치 사이에 위치한 임시 저장소의 개념이다보니 사용자의 필요에 따라 데이터를 저장하는 것은 불가능합니다. 그럼에도 캐시 메모리에 저장된 데이터가 사용자의 PC 사용 환경을 개선시켜준다는 것은 P사용자의 PC 이용패턴을 분석하고 미래에 다시 사용될 데이터를 판별하는 성능이 뛰어나다는 뜻이 됩니다. 어떤 프로그램에서 데이터 요청이 들어왔을 때 해당 데이터를 캐시 메모리에서 찾아내는 것을 '캐시 히트', 캐시 메모리에 해당 데이터가 저장되어있지 않아 DRAM 저장장치로 탐색 범위를 확대해야 할 경우를 '캐시 미스'라고 이야기합니다. '캐시 미스'가 많다면 사용자의 PC 이용 속도가 상승하지 않을 것이고 캐시 메모리의 존재 가치는 사라집니다. 하지만 뛰어난 데이터 이용 예측 기술로 시중에 유통되는 CPU들은 '캐시 미스' 비율이 평균 10% 이하를 유지한다고 합니다.
오늘 포스팅에서는 CPU 성능을 이야기할 때 하나의 구성요소인 '캐시 메모리'에 대해 살펴봤습니다. CPU 코어, 쓰레드, 클럭 등이 CPU의 자체 성능에 관한 용어라면 캐시 메모리는 데이터의 효과적 운용에 도움을 주는 역할을 하는 것으로 이해할 수 있었습니다. 다양하고 복잡한 데이터의 사용 빈도가 높은 프로그램을 이용한다면 캐시 메모리의 용량을 고려할 필요가 있을 것이고, 가벼운 프로그램을 위주로 사용한다면 캐시 메모리의 용량이 조금 적더라도 PC 이용에 큰 무리가 없을 것으로 생각됩니다.
'PC' 카테고리의 다른 글
CPU 설계전력을 알아보자 (0) | 2020.04.25 |
---|---|
CPU 대역폭이란? (0) | 2020.04.25 |
CPU 연산체계 이해하기 (0) | 2020.04.25 |
CPU 스레드와 클럭의 관계 (0) | 2020.04.24 |
CPU 코어 뜻 이해하기 (0) | 2020.04.24 |
최근댓글