안녕하세요~

이번장에서는 memory이 어떻게 구성되어 있고 용량은 어떻게 계산하는지 등에 대해서 알려드리려고 해요!





해당 chapter(컴퓨터 하드웨어) 첫 번째 글(링크)에서 배웠듯이 CPU가 어떤 명령어를 처리하려면 memory에 있는 명령어들을 불러들어야해요. 만약 CPU 성능이 굉장히 좋은데 memory용량이 제한적이라면 메모리에 로드된 process의 수가 적기 때문에 cpu가 놀고 있을 확률이 클거에요. 그렇다면 우리는 memory 용량을 어떻게 계산해야할까요?



<1. Cell>

메모리를 구성하는 기본단위를 cell이라고 불러요. Cell은 기본적으로 8bit단위로 구성되어 있고 이러한 cell들이 모여 하나의 physical memory라고 불러요.


<사진1>




우리가 64MB 메모리를 사용한다라고 하면 64MB는 어떻게 계산되는걸까요?

Cell 하나가 8bit로 구성 되어 있으니, 1Byte 단위로 계산 할 수 있을거에요. 1Byte가 1MB 용량이 되려면 2^20 byte가 되어야 해요. 2^20 byte가 되어야 한다는건 2^20개의 cell이 필요하다는 뜻이겠죠? 그래서 64MB라고 한다면 64x2^20 개의 cell이 필요하다는거에요.

 


<사진2>




<2. 16GB VS 8GB>


우리가 흔히 memory를 구매할 때, 16GB를 이용할지 8GB 2개를 이용할지 고민을 하게 되는데요.

일단 흔히 우리가 memory로써 구매하는 삼성의 DDR RAM의 구조부터 살펴보고, 어떻게 구성하는게 좋은건지 알아보도록 할게요.


2-1) RAM

우리가 흔히 메모리라고 하면 RAM이라고들 해요.

예전에 테이프 같은 것들은 데이터를 순차적으로 읽어야 했어요. 그래서 특정 노래를 들으려면 되감기나 빨리감기 같은것을 해야했죠. 이렇게 순차적으로 메모리에 접근하는 방식을 SAM(Sequential Access Memory)라고 해요.



<사진3>



하지만 이와 반대로 순차적으로 점근하는 것이 아닌 랜덤하게 특정 위치에 접근하여 특정 노래를 들을 수 있다면, 이러한 방식으로 메모리에 접근할 수 있다면 우리는 이것을 RAM(Random Access Memory)라고 해요. 흔히 CPU가 메모리에 특정 process를 실행시킬때 순차적으로 접근하는건 아니기 때문에 메모리를 RAM이라고 칭한답니다.



<사진4>



메모리(memory)는 RAM 이외에도 주기억장치(ROM or RAM), DRAM (Dynamic RAM) 등의 용어들과 혼합해서 사용한다는 점 알아두세요!



2-2) 16GB VS 8GB


하나의 physical 메모리가 차지하는 용량에 따라 전체 메모리 용량이 달라질거에요. 예를들어 "5-1"같은 경우는 전체 RAM 용량이 4G이고, physical memory 개수는 8개이기 때문에 하나의 physical memory는 0.5G라고 할 수 있어요.


<사진5-1. 4G RAM>



Physical memory의 크기가 좀 더 커지면 더 많은 용량을 담을 수 있겠죠? 아니면 physical memory의 크기가 커지지 않더라도 집적기술의 발달로 더 많은 cell을 하나의 physical memory에 집어넣을 수 있으면 모메모리 용량이 커질거에요. 아래 "5-2"같은 경우는 하나의 physical memory에 1G 용량이 들어있다고 보면 되겠네요.

<사진5-2. 8G RAM>



그렇다면 우리가 16GB 메모리를 구성한다고 했을 때, 16GB를 하나로 구성하는 방식과 8GB를 두 개로 구성하는 방식이 있겠죠? 어떤 방식이 더 좋을까요? (아래 영상을 참고하시면 더 자세히 이해하실 수 있어요!)



결론부터 대체적으로 8GB 메모리를 두 개로 구성하는게 더 좋은 경우가 많아요. 위의 영상을 보셨다는 전제하에 말씀 드리면 하나의 memory가 8개의 physical memory로 구성되었다고 했을 때, 16GB인 memory에서는 하나의 physical memory가 2GB 처리능력을 갖고 있을것이고, 8GB memory에서는 1GB의 처리능력을 갖고 있을거에요. 그럼 상황을 예를들어 어떤 방식으로 16GB 메모리를 구성하는게 좋은지 말씀드려볼게요.


상황1. 한번에 9GB 용량을 처리해야 할 경우

16GB는 16GB 만큼 처리할 수 있는 용량이 있으니 각각 physical memory에 2GB, 2GB, 2GB, 1GB 씩 할당시켜 주면 처리가 가능해요. 마찬가지로 8GB 2개로 구성된 구조에서는 각각 physical memory에 1GB, 1GB, 1GB, 1GB, 1GB, 1GB, 1GB, 1GB, 1GB 으로 할당시켜 줄 수 있어요. 8GB 2개로 나뉘어질 경우 process간 통신을 할 때는 물리적 거리로 인해 시간이 조금 느려질 수는 있지만 사람이 느끼기 힘든정도라고 하니 '상황1'에서는 어떤 방식으로 16GB 메모리를 구성하던지 큰 문제가 생기지 않을거 같아요.


상황2. Physical memory에 1GB 정도되는 작업량이 9개가 병렬로 오는경우.

이런 경우에는 16GB 메모리를 사용하게되면 하나의 physical memory에서 2GB를 처리할 수 있음에도 불구하고 1GB씩 밖에 작업이 진행되지 않기 때문에 결국 남은 1GB를 낭비하게되요. 더군다나 8개에 1GB씩 모두 할당시켰기 때문에 남은 1GB(=9GB-8GB)는 좀 더 나중에 처리가 된답니다. 하지만 8GB 2개로 구성된다고 했을때 결국 한 번에 메모리에 할당할 수 있으니 좀 더 빠르게 작업이 진행되겠죠?




그렇다면 제 메모리는 어떻게 구성되어 있는지 확인해 볼까요?

"윈도우키->작업 관리자->성능 탭->메모리" 순서로 보시면 24GB라고 표시과 되어있어요. 저는 실제로 16GB 메모리 하나와 8GB 메모리 하나를 이용해 24GB 메모리로 구성했답니다.





<3. CPU가 느끼는 체감속도>

CPU는 메인 메모리에 접근하는 시간과 L2 Cahce, SSD 같은 메모리에 접근하는 시간은 얼마나 차이가 날까요? (실제로 CPU가 Cahce, SSD같은 곳에는 접근하는 것이 아니고 SSD의 데이터가 메인 메모리에 업로드되고 업로드된 데이터를 CPU가 접근하는 것을 CPU가 SSD 데이터에 접근하는걸로 표현했어요)




  




지금까지 메모리에 대해서 알아봤어요!

다음 시간에는 SSD에 대해서 알아보도록 할게요~






[글 래퍼런스]

https://www.youtube.com/watch?v=Vj2rNQFvdDw


[사진 래퍼런스]

사진1

https://www.vectorstock.com/royalty-free-vector/real-random-access-memory-or-ram-computer-vector-27187049

https://hackerspace.tistory.com/entry/%EB%A9%94%EB%AA%A8%EB%A6%AC

사진2

https://www.slideserve.com/pandora-gilmore/6339255

사진3

http://item.gmarket.co.kr/Item?goodscode=969169514

사진4

https://slidesplayer.org/slide/14685169/

사진5-1

https://www.amazon.com/ROYEMAI-PC3-8500-240-pin-Upgrade-Desktop/dp/B081DK81LN

사진5-2

https://www.amazon.com/Rasalas-12800U-Unbuffered-Desktop-Memory/dp/B07N5XKYH5





+ Recent posts