나만의 작은 도서관

컴퓨터 구조 #2. 메모리(Memory) 본문

Common/CS-일반

컴퓨터 구조 #2. 메모리(Memory)

pledge24 2024. 7. 10. 15:50

메모리

출처 : https://www.geeksforgeeks.org/secondary-memory/

 

컴퓨터에 연산을 처리하는 CPU만 존재하게된다면, 제대로 된 사용이 불가능 할겁니다. 왜냐하면 처리를 해야할 데이터를 기억하는 장치가 존재하지 않기 때문이죠. 물론 CPU내부에 레지스터라는 메모리가 존재하기는 합니다만, 레지스터는 기억 장치에서 가져온 데이터를 임시로 저장하는 장치일 뿐 데이터를 영구적으로 저장하는 역할이 아닙니다. 따라서, 계산을 위한 여러 데이터들을 기억하는 "메모리"가 필요한 것입니다. 대표적으로 CPU가 접근하는 메모리 RAM이 있습니다.

RAM (Random Access Memory)

RAM은 Random Access Memory의 약자로, 임의 접근 기억 장치라는 의미를 가지고 있습니다. 하지만, 이러한 의미는 잘못되었습니다. 그 이유는 RAM과 구분되는 ROM종류의 메모리(PROM, EPROM, EEPROM등등...)또한 임의 접근 방식을 사용하고 있기 때문입니다. 그래서 '임의 접근 방식을 사용하는 메모리가 RAM이구나!'는 잘못된 접근입니다. 대신, 데이터를 읽고 쓸 때 모두 전기적인 신호들을 사용하고, 전원의 공급이 중단되었을 때 데이터를 잃어버리는 휘발성(volatile)의 특성을 가지고 있는 메모리를 RAM이라고 이해하시면 됩니다. 

 

SRAM (Static RAM)

컴퓨터에서 일정 전압 이상의 전압을 1, 그렇지 않은 전압을 0으로 간주합니다. 따라서 논리 회로에 전압을 조절하며 주입하게되면 그 전압에 따른 결과가 1 또는 0로 표현이 되는 것이죠. 메모리는 이러한 개념을 논리 회로를 활용하여 데이터를 저장하게 됩니다. 즉, 일정 이상의 전압을 저장하거나 그렇지 않은 전압을 가지고 있는다는 것이죠. 

현재 SRAM이라 부르는 초기 RAM은 전원을 지속적으로 논리회로에 공급하는 방식으로 만들어졌습니다. 전원이 지속적으로 지급되는 상황속에서 전압을 조절하여 1을 뜻하는 전압이 빠지지 않도록 회로에 가둬놓아 1을 저장하거나, 빠지도록 풀어 0을 저장하게 됩니다.  이러한 방식은 플립-플롭 논리 게이트(flip-flop logic gate)들을 이용하여 저장하게 됩니다. 

 

+) 여기서 플립-플롭은 우리가 신고다니는 일명 쫄이(?)를 의미하기도 합니다. 어쩌다 이름이 붙었는지는 찾아보지 않았지만 이랬다 저랬다 밥먹듯이 상태가 변한다는 특성을 표현하기 위해 이런 이름을 붙인게 아닌가 싶습니다.

 

SRAM의 한계점: DRAM의 등장

이런 SRAM은 0과1로 표현된 데이터를 저장할 수 있습니다. 위에서 설명한 논리회로(일명 SRAM 소자)하나당 1비트를 저장할 수 있게 된 것입니다. 문제는, 이 SRAM 소자 하나하나가 생각보다 크기가 크다는 겁니다. 게다가 소자당 논리 게이트의 개수도 많이 들어가는 편이라 비용적인 면에서도 부담이 크게 됩니다. 그래서 이런 문제들을 해결하기 위해 보다 크기가 작고 적은 논리 게이트로 데이터를 저장할 수 있는 DRAM이 만들어지게 됩니다. 

 

DRAM(Dynamic RAM)

DRAM은 SRAM과 다르게 전하를 커패시터(capacitor)에 충전하여 0 또는 1을 표현하게 됩니다. 커패시터에 전하가 충전되어있으면 1, 그렇지 않으면 0을 의미하게 됩니다. 이렇게 커패시터를 사용하게 되면 사용해야하는 논리게이트의 수가 크게 줄어들게 되고 이는 비용 절감과 크기 감소라는 장점을 얻게됩니다.

추가로, RAM은 CPU가 직접적으로 접근하는 메모리라하여 메인 메모리(Main Memory)라고도 합니다.

 

하지만, 이런 DRAM이 SRAM보다 항상 좋았다면 SRAM을 지금까지도 사용하지는 않았을 겁니다. 분명히 DRAM도 SRAM보다 못한 부분들이 있게됩니다. 가장 큰 문제점은 SRAM보다 읽기/쓰기 속도가 느리다는 겁니다. 아무리 면적 당 비용과 용량에 대한 지표가 SRAM보다 우수해도 속도가 크게 밀리기에 지금은 SRAM/DRAM을 둘 다 사용하고 있습니다.

 

SRAM은 캐시 메모리로, DRAM은 RAM의 역할로

구분 SRAM DRAM
셀 구성  기본적으로 6개의 트랜지스터 1트랜지스터 - 1커패시터
집적도 낮음 높음
가격 높은 낮음
속도 매우 빠름 2~3ms 빠름 10~50ms

 

위 표와 같은 이유로 SRAM은 보다 빠르게 데이터를 읽고 쓰는 작업을 해야하는 캐시 메모리에, DRAM은 보다 많은 데이터를 저장해야하는 흔히 RAM이라 부르는 장치에 사용되게 됩니다.

 

RAM의 문제점: ROM의 필요성

RAM은 기본적으로 전원이 공급되는 상황에서만 데이터를 저장합니다. 전원의 공급이 중단되는 순간 SRAM은 그대로 데이터가 소멸되고, DRAM은 커패시터에 충전된 전하가 방전되며 데이터가 소멸됩니다. '전원을 계속 공급하면 되는게 아니냐?' 할 수도 있겠지만 의도치 않게 정전이라도 나는 순간 모든 데이터가 날라가는 경우는 대처할 수가 없습니다. 마치 ctrl+s를 누르지 않아 작업한 내용들이 전부 날아가는 경우라 볼 수 있겠네요. 따라서, 전원이 공급되지 않아도 영구적으로 데이터를 저장하는 기억 장치가 필요성을 느끼고,  ROM이라는 방식의 메모리가 탄생하게 됩니다.  

 

ROM (Read-Only Memory)

출처: https://4ddig.tenorshare.com/kr/partition-manager/ssd-vs-hdd.html

 

ROM은 (Read-Only Memory)의 약자로, 현재ROM은 하드디스크(HDD), SSD와 같은 기억 장치에서 사용하는 방식이기도 한 ROM은 전원의 공급이 없는 경우에도 데이터를 저장할 수 있는 비휘발성 셀로 구성된 비휘발성 메모리입니다. ROM은 오직 읽을 수만 있는 메모리라는 뜻을 가지고 있습니다. 하지만, ROM또한 RAM과 같이 용어가 가지는 의미는 현재에서는 잘못되었습니다. 오직 읽을 수만 있다(read only)는 의미를 지녔지만 실제로 현재에서는 데이터를 지웠다가 다시 쓸 수도 있기 때문입니다.

오래 전 과거로 돌아가면 확실히 그 당시 ROM은 한 번 쓴 자리는 다시 쓸 수 없었습니다. 그도그럴것이 ROM은 RAM과 달리 물건에 각인을 새기는 방식과 유사한 방식이기 때문입니다. 한 번 새긴 각인을 지울 수 없기 때문에 다시 쓰는 것이 불가능했습니다. 하지만, 기술이 발전함에 따라 각인 방식은 빛을 사용하거나(EPROM) 전기적으로 삭제 가능한 방식(PROM)등이 나타나게되고, 이는 각인된 내용을 지울 수 있는 기능 또한 지니게 되어 ROM이라는 이름이 무색하게 Write도 가능해집니다. 

주요 유형

  1. 마스크 ROM (Mask ROM)
    • 저장 방식: 제조 과정에서 데이터가 반도체 칩에 영구적으로 기록됩니다.
    • 특징: 한 번 데이터가 저장되면 변경할 수 없습니다. 대량 생산에 적합합니다.
  2. PROM (Programmable ROM)
    • 저장 방식: 사용자가 데이터를 한 번 프로그래밍할 수 있습니다. 퓨즈를 태워 특정 비트를 설정하여 데이터를 저장합니다.
    • 특징: 한 번 데이터를 저장하면 수정할 수 없습니다.
  3. EPROM (Erasable Programmable ROM)
    • 저장 방식: 자외선(UV)을 사용하여 데이터를 지우고 다시 프로그래밍할 수 있습니다.
    • 특징: 특수한 장치를 사용해 데이터를 여러 번 수정할 수 있습니다. 칩 상단에 투명 창이 있어 자외선으로 데이터를 지울 수 있습니다.
  4. EEPROM (Electrically Erasable Programmable ROM)
    • 저장 방식: 전기 신호를 사용해 데이터를 지우고 다시 프로그래밍할 수 있습니다.
    • 특징: 데이터를 개별적으로 수정할 수 있으며, 일반적으로 다른 ROM 유형보다 쓰기 속도가 느립니다.
  5. 플래시 메모리
    • 저장 방식: EEPROM의 일종으로, 블록 단위로 데이터를 지우고 다시 프로그래밍할 수 있습니다.
    • 특징: 속도가 빠르고 내구성이 높아 USB 드라이브, SSD, 메모리 카드 등에 사용됩니다.

 

메모리 계층구조(Memory hierachy)

이전 CPU에 대한 글에서도 다뤘지만, 메모리에는 계층 구조라는 것이 존재하게 됩니다. 아래의 그림처럼 피라미드의 꼭대기로 올라갈수록 속도가 빠르고 용량이 적어집니다. 반대로 아래로 내려갈수록 속도가 느리고 용량이 많아집니다. 컴퓨터는 보다 높은 성능을 위해 각각의 역할의 맞는 메모리 종류를 사용해야하며, 따라서 각 계층에 사용되는 메모리의 종류가 다르게 됩니다. 

 

참고하면 좋은 영상

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