본문 바로가기

쉽게 풀어본 IT 기술

메모리에 대해서

메모리는 저장이라는 뜻이다. 컴퓨터에는 크게 두가지 저장 개념이 있다. 오래 저장하는 것과 잠깐 저장하는 것 오래 저장하는 것은 파일이라는 형태로 디스크에 저장이 되며 디스크는 우리가 이해하는 하드디스크이다.

잠깐 저장하는 것은 명령어나 데이터의 형태로 메모리에 저장되는 것이며 프로그램을 종료했을 때 또는 컴퓨터를 껐을 때 심지어 프로그램을 종료하지도 않았는데도 사라지는 경우가 있다. 이렇게 단기적인 기억을 위해서 메모리가 존재하는 이유는 컴퓨터의 전체적인 성능을 높이기 위한 것이다.

컴퓨터의 성능은 무엇에 좌우 될까? 처음 설명한 CPU 연산의 능력, 속도이다. 속도는 클럭으로 표현을 하였다. 빠르게 처리하는 것이 컴퓨터의 성능이다.

메모리가 왜 컴퓨터의 전체 성능을 좌우할까?
CPU가 일을 하려면 일의 내용이 CPU로 전달이 되어야 한다. 이 명령어나 데이터는 파일에 일부로 담겨있다. 파일은 하드 디스크에 저장이 되어 있다. 파일의 일부 내용이 하드 디스크에서 CPU까지 전달하려면 데이터가 BUS를 타야 한다. 컴퓨터 안에도 버스가 있다. BUS의 약어를 찾아봐도 나오지 않는 거 봐서는 우리가 타는 BUS에서 유래되었다고 생각해도 될거 같다. 개념적으로는 같다. 컴퓨터 안에 데이터들을 싣어 날라주는 연결선이다. 데이터 버스 이렇게 부른다.
그러면 하드디스크에 있는 파일의 일부가 이 버스를 타고 CPU로 올라간다. CPU에서 일처리가 끝나면 결과가 다시 버스를 타고 어디론가 흘러간다. 이렇게 버스로 컴퓨터안에서 오간다. 이때 문제는 버스가 상대적으로 느리다는 것이다. 상대적이라는 말을 이해해야 하는 것은 컴퓨터 안에서 데이터가 오가는 속도는 굉장히 빠르다. 사실 하드디스크가 느리다고 말하지만, 엄청난 속도로 실린더를 돌고 있다.

하드디스크를 설명할 기회가 있다면 자세히 다루겠지만, 하디디스크는 정보를 저장하고 그 정보를 찾는 과정에서 우리 과거 레코드 판을 연상하면 된다. LP판이라고 부르는데, 이도 이해가 안될 수 있다. MP3 세대라면 CD정도에만 익숙할 것이다. CD로 연상해도된다. 하드디스크내에는 CD를 여러개 겹쳐 놓은 듯한 구성이고, 이 내에서 정보를 찾기 위해서 열심히 돌아간다. 그리고 그 중에 정보를 꺼내 주거나 저장을 한다. 그래서 CD플레이어의 CD를 넣고 빼다보면 알겠지만, 열심히 돌아간다. 이처럼 하드디스크 내의 디스크도 열심히 돌아간다.

이 돌아가는 속도가 RPM이다. 하드디스크는 관심사가 저장 용량과 이 속도이다. RPM이면 자동차에서 익숙할 것이다. 자동차의 그 RPM과 동일하다. 바퀴가 돌아가는 횟수이다. RPM약어가 Revolution per minute 말이 어렵지만 어찌됐든 1분동안 몇 번의 회전을 하는지 나타내는 단위이다. 그렇다면 자동차 바퀴나 같은 개념이다. 얼마나 빨리 돌아가느냐 아마도 이정도 원리까지 이해하면 될 것이다. 왜냐면 SSD 방식의 디스크가 대중화가 되었고, 이 속도가 엄청나게 빨라서 하드디스크의 실린더가 얼마나 빨리 도는지는 이제 관심이 없어졌기 때문이다.

SSD방식이 바로 메모리 방식이다. 메모리 방식이 왜 빠른지도, 왜 SSD로 디스크를 바꾸면 빠른지도 설명할 기회가 있을 것으로 생각된다. 그렇다면 다시 돌아가서 메모리가 하는 기능은 프로그램의 일부나 데이터의 임시 저장이다.

여기서 자꾸 프로그램의 일부라고 하는 이유는 프로그램이 얼마나 큰가 그 파일이 메모리에 한꺼번에 다 올라가는 것이 아니다. 메모리는 매우 한정된 공간이기때문에 프로그램 중 일부가 올라가는 것이다. 메모리는 CPU가 하고자 하는 일을 임시 저장한다. 메모리를 하드디스크보다 훨씬 속도가 빠르기 때문에 CPU의 일거리를 바로 바로 줄수가 있다. 그래서 CPU가 일을 얼마나 빨리 처리하느냐도 중요하지만, 옆에 일을 얼마나 많이 잘 대기 시켜줄 수 있느냐도 중요하다. 메모리는 그래서 일을 쌓아두는 임시 창고 같은 곳이다. 그래서 그 창고의 크기가 중요하다. 그래서 CPU는 속도가 중요하고, 메모리는 크기가 중요하다.
사실 메모리를 많이 쓰게 되면 속도는 빨라질 수 있다. 하지만 창고가 크다고 해서 일처리가 느리다면 메모리만 많다고 일이 빨라지는 것은 아닐 것이다. 전체 컴퓨터 성능에는 영향을 미친다. 메모리가 많아야 하는 경우는 어떤 경우일까? 일처리를 빨리만 해야 한다면 사실 CPU의 성능이 중요할텐데, 메모리가 많아지면 성능이 좋아질 수 있는 경우는 많은 양의 데이터를 한꺼번에 메모리에 올려 실행하는 프로그램이 있는 경우이다. 대표적인 것이 게임이다. 최근 게임들을 보면 용량이 엄청 크다. 그래픽 사양도 높다. 한꺼번에 메모리에 올려야 할 파일도 많아진다. 그리고 여러개의 작업을 동시에 많이 하는 경우라면 메모리가 많이 필요하다. 이유는 메모리에 여러개의 프로그램의 일부분이 올라가기 때문이다.

메모리에서 지역성이란 ?
메모리에 어떤 곳에 프로그램의 일부를 둘 것인지도 관건이다. CPU는 메모리의 어떤 위치에서 값들을 가져오는데 그 해당하는 내용이 메모리에 없다면 다시 하드디스크로부터 해당하는 파일의 일부를 메모리로 불러 들여야 한다. 그래서 Hit율이라는 말이 있다고 하였는데, Hit가 잘되어야 성능이 좋을텐데, 그렇다면 어떤 값들이 더 사용되어질 것인가에 대한 예측이 필요하다. 이것이 최근에 사용했던 메모리를 그리고 해당 메모리 인근을 접근할 가능성이 높다는 의미에서 지역성이라고 표현을 한다. 유저가 인터넷 브라우저를 켰다면 해당 프로그램을 당분간은 사용할 가능성이 크기 때문이다. 


책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다. 

https://wikidocs.net/22297