본문 바로가기
컴퓨터 공학/C, C++

[ C ] 메모리 이해하기2_레지스터(Register)란? 필요한 이유

by hahehohoo 2020. 7. 13.
반응형

레지스터(Register)란? 레지스터가 필요한 이유

 

CPU 안에 있는 레지스터는 엄밀히 말하면 메모리가 아닙니다. 단지 휘발성으로 데이터를 저장하는 공간입니다. 그 휘발성 덕분에 프로그램을 메모리에 올렸다가 CPU에서 실행하면 굉장히 빨리 처리할 수 있습니다. 

 

그런데  왜 굳이 레지스터를 CPU 안에서 동작하게 만들었을까요? 

어떤 원리로 CPU 안에 있는 레지스터가 처리 속도가 빠르다고 할 수 있을까요?

 

먼저 이전 글을 잠시 복습해보면 CPU는 사람의 뇌, 메모리는 메모장이라고 했습니다. 여기서 하나만 생각해볼께요. 우리는 생각하는게 빠르나요? 적는게 빠르나요? 지금 누군가와 대화를 나누고 있다면, 듣는 동시에 머리 속으로 곱씹어 보는거랑 오고간 문장을 손으로 다 쓰는 것 중 당연히 뇌로 생각하는게 빠릅니다. 그와 마찬가지로 CPU는 빠르고, 메모리는 느립니다. 

 

이 둘 사이에 시간과 관련해서 문제가 하나 더 있는데. 바로 CPU가 메모리에 접근할 때 생기는 문제입니다. 아래 그림처럼 버스를 통해야하기 때문에 이동 시간이 따로 발생합니다. 

 

 

 

 

그렇게 접근한 메모리가 DRAM(Dinamic Random Access Memory, 대부분의 컴퓨터에 장착하는 저렴한 메모리)이라면 DRAM 특성상 기록된 내용을 유지하기 위해서 주기적으로 정보를 다시 써야합니다. 그런 다시 쓰는 작업이 또 시간을 소모합니다. 물론 DRAM의 단점을 보완할 수 있는 메모리 SRAM Static memory 가 있지만 가격이 매우 비쌉니다.

 

CPU가 메모리에 접근할 때마다 '버스 안에서 발생하는 시간 + 메모리 DRAM 처리 속도'가 발생하니,  컴퓨터 공학자들은 고민하기 시작합니다. 비용이 저렴하면서 속도가 빠른 컴퓨터를 어떻게 만들까

 

-> 이동할 필요가 없는 CPU만의 전용 저장 공간을 만들어서 CPU랑 가까이 두자.

 

이렇게 해서 어떤 저장 공간을 CPU 안에 넣었습니다. 그게 바로 레지스터입니다.

 

 

 

-----------------------------------

C언어 문법 총정리

목록 보러가기 

-----------------------------------

 

 

반응형


댓글