캐시 Cache 란 무엇일까 ? 역할과 중요성

 캐시 Cache라고 하면, 컴퓨터를 사용하는 사람들이 어떻게든 한 번쯤은 마주치는 단어죠. “캐시를 허용하시겠습니까 ?” “캐시 삭제” 등등의 말을 어디선가 들어볼 수 있는데요. 이 캐시는 바로 컴퓨터의 저장소 중 하나를 가리키는 단어입니다. 이는 저장소 중에서도 임시 저장소로 이용되는 공간인데요. 이 캐시가 왜 생겨났고, 어떤 역할을 정확히 하는 건지 설명해 드리려고 합니다. 



예를 들어 우리가 Hello라는 명령어를 읽고 화면에 표시하는 과정을 거친다고 생각해 봅시다. 





일단 사용자가 키보드로 Hello라는 글을 작성합니다. 


그러면 Hello라는 글은 CPU 의 Register를 거쳐 Main Memory에 저장되게 됩니다.







이후 사용자가 Enter 키를 누르면 컴퓨터는 사용자의 입력이 끝났음을 인지하고 해당 과정을 처리할 수 있는 추가 데이터들을 Disk에서 Main memory로 이동시킵니다. 







그렇게 모인 모든 데이터들이 다시 CPU 의 Register에 들렸다가 Display로 송출됩니다.






 


자 여기서 느껴지는 것들이 있죠. “아니 그냥 입력한 거 그냥 보여주면 되지, 왜 이렇게 이동하는 과정이 많지 ?” 하지만 우리가 단순히 Hello를 입력하기만 하는 게 아니라 컴퓨터들 이용할 때는 더 복잡하고 다양한 기능이 필요하기에, Disk 과 Memory 와 Register 의 역할이 필수적 입니다. 간단히 말해서 저장과 계산이 꼭 필요하다는 말이지요. 


하지만 개발자들이 보았을 때는 프로그램을 실행할 때 속도가 빨라야 합니다. 그렇지 않으면, 개발자들이 만든 프로그램들을 사용하는 고객들이 그 프로그램을 사용하고 싶어 하지 않을 테니까요. 



그래서 개발자와 컴퓨터 엔지니어들은 프로그램의 속도를 올리고자 노력해 왔습니다. 그래서 그들은 고민을 하다가 두 가지의 원인을 찾아냈습니다. 


첫 번째 원인으로는 데이터를 이동시키는 과정이 너무 많다는 것이었습니다. 그래서 이를 위해 여러 가지 장치를 마련하게 되죠. 예를 들어 이동해야 하는 횟수를 줄여주기 위해 임시저장소인 캐시를 만들어준다던가, 위의 ‘Hello 예시’에서 본 것처럼 CPU를 방문하지 않고 Disk에서 바로 Main Memory로 이동시켜 주는 장치를 만들어주었죠. 



두 번째 원인은 바로 저장장치의 속도 차이입니다. 지금까지 살펴본 바와 같이 우리의 컴퓨터는 하나의 저장소만을 가지고 있지 않습니다. 







이 저장소들은 다른 특징들을 가지고 있습니다. 모두 같은 친구들이 아니죠. 이 때문에 이들 사이에  차이가 발생하게 됩니다. 위의 이미지에서 파란색 부분이 바로 컴퓨터 내부의 데이터 저장소인데요. 앞서 말씀드린 바와 같이 Memory, register는 임시 저장소이지만, Disk는 장기 저장소입니다. 




그렇기 때문에 디스크 Disk는 용량이 큰 대신 속도가 느리고, 메모리 Memory는 용량이 작은 대신 속도가 빠른 편에 속합니다. 이 이외의 레지스터 Register 도 저장소 중 하나인데, 이는 용량이 더 작지만 속도는 더 빠르죠. 


위의 두 원인으로부터 공통으로 컴퓨터의 속도를 지키는 장치가 바로 캐시 Cache 입니다. 캐시는 미리 가져왔던 데이터를 조금 더 길게 저장하며, 굳이 데이터를 가지러 Disk 까지 가지 않게끔 해주는 장치로 CPU 안에 위치합니다. 조금 더 깊게 들어가면 이 캐시 내부에도 등급이 따로 나뉘어져 하나 이상의 캐시가 존재하지만, 오늘은 이 부분까지는 깊게 다루지 않겠습니다. 


캐시를 만든 이후에도 컴퓨터 엔지니어들은 캐시 Cache에 어떤 데이터를 저장할 것인지 그 규칙을 개발해 나가면서 계속해서 빠른 컴퓨터를 개발해 내고 있습니다. 



오늘은 이렇게 캐시 Cache 대해 그리고 캐시 Cache 있어야 하는지에 대해 알아보았는데요. 다음 포스팅으로는 컴퓨터 내부에 있는 저장장치에 대해 조금 알아보는 시간을 가져보도록 하겠습니다





참조 : Book : Computer Systems A Programmer's Perspective - Randal E. Bryant. David R. O'Hallaron.

댓글