edwith CS50강의를 보며 정리했습니다.

 


● 기억장치

 

CPU의 용량은 굉장히 제한적이라서 1MB정도의 저장공간만 있다. 한 번에 64bit정도만 처리하면 되기 때문이다. CPU가 두 수를 더한다면 64bit + 64bit 이기 때문에 파일 크기와 관계 없이 적은 양만 CPU로 가져온다. 계산을 하는 동안 데이터를 다른 곳에 저장하는데, 그것을 저장하는 곳이 바로 RAM이다.

RAM은 임의 접근 기억장치다. 메모리는 두 가지 종류가 있는데, RAM과 하드디스크가 있다. 두 메모리는 반대의 성질을 띄는데, 하드디스크는 영구적이고 휘발성이 없는데 반해 RAM은 일시적이고 전원을 끄면 사라지기 때문에 휘발성이 있다. 보통 파일이나 프로그램을 더블클릭하면 도달하는 곳이 RAM이다. 문서를 작성하거나 프로그램을 실행할 때 자료나 프로그램들은 하드디스크에 복사되고 RAM에 일시저장된다. RAM에 저장되는 이유는 하드디스크보다 빠르기 때문이다.

RAM이 더 빠른데도 불구하고 하드디스크를 보통 더 크게(많이) 가지고 있는 이유는 하드디스크에 있는 내용물을 동시에 볼 필요가 없기 때문이다. 우리가 동시에 하드디스크의 모든 프로그램을 실행하지는 않기 때문이다. 또한, CPU에는 어차피 병목현상이 있기 때문에 하드디스크의 용량과 무관하게 훨씬 좁은 파이프라인으로 데이터가 흘러 들어가게 된다.

RAM의 용량이 더 작은 이유는 비싸기도 하고 기술적으로 아직 많은 용량을 담을 수 없기 때문이다. RAM이 더 동적이라고도 말할 수 있는데, RAM이 여러가지를 한꺼번에 처리하는 반면에 하드디스크는 정적인 상태라고 말할 수 있다. 하지만 RAM과 하드디스크는 서로 상응하는 관계이기 때문에 계속해서 커질 것이다. 

하드디스크에 있는 프로그램을 더블클릭하면 RAM에 적재되고 이 일이 발생하기 위해서는 컴퓨터가 입력장치(마우스,키보드)에 반응하기 위해 CPU로 비트가 흘러 들어간다. 메모리의 종류에는 L1,L2,L3 등의 캐시 종류가 있는데 L1은 1차, L2는 2차를 의미한다. 

L1 캐시가 이 셋 중에서 가장 작고 빠르며, 중앙처리장치가 재빨리 받아 처리할 수 있도록 몇 킬로바이트의 데이터만을 저장한다. L2 캐시는 L1 캐시보다 조금 크지만, 그만큼 더 느리다. L3 캐시는 보통 몇 메가바이트를 저장할 수 있어 셋 중 가장 크지만 가장 느리다. 그래도 L3 캐시는 RAM보다는 빠르다.

CPU에 가까울수록 더 빨리 데이터를 받을 수 있지만 양이 적다. 기술적 효율성 때문에 이런 순서로 진행이 된다. CPU는 항상 할 일이 있고 비트를 계속 보낼 수 있기 때문에 빨라야 하고, CPU에서 멀어질수록 느려도 된다. 

하드디스크가 크면 더 많은 것들을 저장할 수 있고, RAM이 크면 동시에 더 많은 일을 한꺼번에 수행할 수 있다. 사실 '동시에' 수행되지는 않지만 엄청나게 빠른 속도로 수행되기 때문에 동시에 수행되는 것처럼 느껴지는 것이다. CPU는 한번에 한가지 일밖에 처리할 수는 없지만 인간이 컴퓨터보다 상대적으로 느리기 때문이다.

요즘 운영체제에서는 '가상 기억장치'라는 것을 제공하는데 만약 500MB 정도의 작은 RAM에서 파일을 실행한다면 이 비트들을 RAM에서 하드디스크로 옮긴다. 프로그램을 실행시키기 위한 공간이 필요하기 때문이다. 그래서 우리가 어떠한 프로그램을 실행할 때 버벅거리거나 로딩이 오래걸린다면 그러한 가상 기억장치로의 이동작업이 이루어졌기 때문이다.

이렇게 버벅거리는 동안 하드디스크에 있던 프로그램을 다시 RAM으로 옮기고 RAM에 있던 프로그램을 다시 하드디스크로 옮기는 작업이 이루어진다. RAM이 크면 이러한 과정들이 생략되기 때문에, PC를 구매할 때 램(메모리)가 큰 것에 투자하는 것이 좋다. 물론 CPU나 디스크(하드) 크기가 큰 것도 좋지만 그래도 램이 우선순위가 높지 않을까?

L2, L1 캐시(Cache)는 CPU에 붙어 나오는데, 구매할 때 L2캐시가 많은 것을 구매할 수 있는 것이 아니다. 1.3GHz의 PC가 1.5GHz의 PC보다 빠를 수도 있는데, RAM이나 CPU의 캐시의 차이에 따라 달라질 수 있다.

+ Recent posts