랜덤 액세스 메모리(RAM; /ræm/)는 컴퓨터의 전자 메모리 형태이다. 이는 데이터를 읽거나 변경하는 순서에 관계없이 저장할 수 있는 메모리이다. 일반적으로 작업 데이터와 기계 코드 저장에 사용된다. 랜덤 액세스 메모리 장치는 데이터 항목을 읽거나 쓸 때, 물리적 위치에 관계없이 거의 동일한 시간 내에 처리할 수 있는 특징이 있다. 이는 하드 디스크나 자기 테이프와 같은 다른 직접 액세스 저장 매체와 대비되는데, 이들 매체에서는 데이터 항목을 읽거나 쓰는 데 걸리는 시간이 물리적 위치에 따라 달라진다. 이는 미디어 회전 속도나 팔 움직임과 같은 기계적 제한 때문이다.
오늘날의 기술에서는 랜덤 액세스 메모리가 MOS(금속-산화물-반도체) 메모리 셀이 탑재된 집적 회로(IC) 칩 형태이다. RAM은 일반적으로 전원이 꺼지면 저장된 정보가 사라지는 휘발성 메모리와 연관된다. 휘발성 반도체 메모리의 두 가지 주요 유형은 정적 랜덤 액세스 메모리(SRAM)와 동적 랜덤 액세스 메모리(DRAM)이다.
비휘발성 RAM도 개발되었으며, 다른 종류의 비휘발성 메모리들은 읽기 작업에 대해서는 랜덤 액세스를 허용하지만, 쓰기 작업을 허용하지 않거나 다른 종류의 제한이 있다. 이러한 메모리에는 대부분의 ROM과 NOR 플래시 메모리가 포함된다.
반도체 RAM의 사용은 1965년으로 거슬러 올라가며, IBM은 자사의 System/360 Model 95 컴퓨터를 위해 16비트 SP95 SRAM 칩을 출시하였다. 또한 Toshiba는 180비트 Toscal BC-1411 전자 계산기를 위해 바이폴라 DRAM 메모리 셀을 사용하였다. 초기에는 자기 코어 메모리에 비해 빠른 속도를 제공했지만, 바이폴라 DRAM은 당시 주류였던 자기 코어 메모리의 낮은 가격에 경쟁할 수 없었다. 1966년, 로버트 드넌드는 하나의 MOS 트랜지스터와 커패시터로 구성된 현대적인 DRAM 아키텍처를 발명하였다. 1970년 10월, 첫 상업용 DRAM IC 칩인 1K Intel 1103이 출시되었다. 동기식 동적 랜덤 액세스 메모리(SDRAM)는 1992년에 삼성의 KM48SL2000 칩으로 재도입되었다.
초기 컴퓨터들은 릴레이, 기계식 카운터 또는 지연선을 사용하여 메모리 기능을 구현하였다. 초음파 지연선은 순차적인 장치로, 데이터는 기록된 순서대로만 복원할 수 있었다. 드럼 메모리는 상대적으로 낮은 비용으로 확장할 수 있었지만, 메모리 항목을 효율적으로 검색하려면 드럼의 물리적 배치를 알고 있어야 했다. 트라이오드 진공관으로 만든 래치와 나중에는 개별 트랜지스터를 사용하여 더 작고 빠른 메모리인 레지스터를 만들었다. 이러한 레지스터는 크기가 크고 대용량 데이터 저장에는 너무 비쌌다. 일반적으로 수십 또는 수백 비트의 메모리만 제공할 수 있었다.
첫 번째 실용적인 형태의 랜덤 액세스 메모리는 윌리엄스 튜브였다. 이 메모리는 전자빔이 CRT(음극선관)의 전하된 점을 읽고 쓸 수 있어 랜덤 액세스가 가능했다. 윌리엄스 튜브의 용량은 수백 비트에서 약 천 비트 정도였지만, 개별 진공관 래치 방식에 비해 훨씬 작고 빠르며 전력 효율적이었다. 영국 맨체스터 대학교에서 개발된 윌리엄스 튜브는 맨체스터 베이비 컴퓨터에서 최초로 전자적으로 저장된 프로그램을 실행하는 데 사용되었다. 사실 윌리엄스 튜브 메모리는 베이비 컴퓨터를 위한 것이 아니라, 메모리의 신뢰성을 입증하는 시험용 기기로 만들어졌다.
자기 코어 메모리는 1947년에 발명되어 1970년대 중반까지 개발되었다. 이는 자기화된 링 배열을 사용하여 랜덤 액세스를 가능하게 했다. 각 링의 자기화를 변경하여 데이터를 저장할 수 있었고, 모든 링에는 주소선이 있어 메모리 위치에 순서에 관계없이 접근할 수 있었다. 자기 코어 메모리는 반도체 메모리가 IC(집적 회로) 형태로 발전하기 전까지 컴퓨터 메모리의 표준 형태였다.
집적 회로 읽기 전용 메모리(ROM)의 개발 이전에는 영구적인(또는 읽기 전용) 랜덤 액세스 메모리가 다이오드 매트릭스나 특별히 감은 코어 로프 메모리 플레인을 사용하여 구성되었을 수도 있다.
반도체 메모리는 1960년대에 바이폴라 트랜지스터를 사용하는 바이폴라 메모리로 등장했다. 이는 더 빠르긴 했지만 자기 코어 메모리의 더 낮은 가격과 경쟁할 수는 없었다.
MOS RAM은 1957년, 벨 연구소에서 Frosch와 Derick이 최초의 산화물 반도체 필드 효과 트랜지스터를 제조한 것에서 시작되었다. 이후 1960년, 벨 연구소에서 MOSFET가 작동하는 방식이 입증되었다. 이 기술은 1964년 Fairchild Semiconductor의 John Schmidt에 의해 MOS 메모리 개발로 이어졌다. MOS 반도체 메모리는 자기 코어 메모리에 비해 더 빠르고, 저렴하며 전력 소모가 적었다. 1968년, Federico Faggin은 MOS 메모리 칩 생산을 가능하게 하는 실리콘 게이트 MOS 집적 회로(MOS IC) 기술을 개발했다. MOS 메모리는 1970년대 초반에 자기 코어 메모리를 대체하며 지배적인 메모리 기술이 되었다.
통합 바이폴라 정적 랜덤 액세스 메모리(SRAM)는 1963년, Fairchild Semiconductor의 Robert H. Norman에 의해 발명되었다. 이후 1964년 John Schmidt에 의해 MOS SRAM이 개발되었다. SRAM은 자기 코어 메모리의 대안으로 등장했으나, 데이터 1비트를 저장하는 데 6개의 MOS 트랜지스터가 필요했다. 1965년, IBM은 System/360 Model 95의 SP95 메모리 칩을 상업적으로 출시했다.
동적 랜덤 액세스 메모리(DRAM)는 4개 또는 6개의 트랜지스터로 구성된 래치 회로를 하나의 트랜지스터로 대체하여 메모리 밀도를 크게 증가시켰다. 그러나 이 메모리는 휘발성으로, 각 트랜지스터의 작은 커패시터에 데이터를 저장하며 이 데이터는 몇 밀리초마다 갱신되어야 했다.
메모리 셀은 컴퓨터 메모리의 기본적인 구성 요소이다. 메모리 셀은 이진 정보를 저장하는 전자 회로로, 논리 1(높은 전압)을 저장하려면 설정하고, 논리 0(낮은 전압)을 저장하려면 초기화해야 한다. 메모리 셀에 저장된 값은 설정/초기화 과정으로 변경되기 전까지 유지된다. 이 값은 읽기 작업을 통해 접근할 수 있다.
SRAM에서는 메모리 셀이 주로 플립플롭 회로로 구성된다. 이 회로는 보통 FET(전계효과트랜지스터)를 사용해 구현된다. 이 때문에 SRAM은 접근하지 않을 때 매우 낮은 전력을 소비하지만, 비용이 비쌌고 저장 밀도가 낮다.
두 번째 유형인 DRAM은 커패시터를 기반으로 한다. 이 커패시터를 충전하고 방전시키면 셀에 "1" 또는 "0"을 저장할 수 있다. 그러나 커패시터의 전하는 서서히 빠져나가므로 주기적으로 새로 고침(refresh)해야 한다. 이 새로 고침 과정 때문에 DRAM은 더 많은 전력을 사용하지만, SRAM에 비해 더 높은 저장 밀도와 낮은 단가를 달성할 수 있다.
메모리 주소 지정은 메모리 셀을 읽고 쓸 수 있게 만드는 과정이다. RAM 장치 내에서는 멀티플렉싱과 디멀티플렉싱 회로를 사용해 메모리 셀을 선택한다. 보통 RAM 장치에는 주소선 A0, A1, ..., An이 있으며, 이 주소선에 적용되는 비트 조합에 따라 메모리 셀의 집합이 활성화된다. 이 주소 지정 방식 덕분에 RAM 장치는 용량이 항상 2의 거듭제곱 형태로 설정된다.
보통 여러 메모리 셀이 동일한 주소를 공유한다. 예를 들어, 4비트 "넓이"를 가진 RAM 칩에는 각 주소마다 4개의 메모리 셀이 존재한다. 메모리의 너비와 마이크로프로세서의 너비가 다를 때가 많아서, 32비트 마이크로프로세서에서는 4비트 RAM 칩 8개가 필요할 수 있다.
메모리 셀을 선택할 수 있는 주소가 장치에서 제공하는 것보다 더 많이 필요할 수 있다. 이럴 경우, 외부 멀티플렉서를 사용해 접근하려는 장치를 활성화시킨다. RAM은 보통 바이트 단위로 주소가 지정되지만, 워드 단위로 주소를 지정하는 RAM도 만들 수 있다.
메모리 계층 구조는 프로세서 레지스터, 온디(내장) SRAM 캐시, 외부 캐시, DRAM, 페이징 시스템, 가상 메모리 또는 하드 드라이브의 스왑 공간 등으로 구성된다. 많은 컴퓨터 시스템에서는 메모리 계층 구조를 사용해, RAM을 확장하거나 여러 종류의 메모리를 효율적으로 활용한다. 이 메모리 계층 구조는 평균 접근 시간을 최대한 빠르게 만들면서 전체 메모리 시스템의 비용을 최소화하는 것이 목표이다. 일반적으로 메모리 계층 구조는 접근 시간을 기준으로 빠른 CPU 레지스터가 상위에, 느린 하드 드라이브가 하위에 위치한다.
많은 현대 개인용 컴퓨터에서는 RAM이 메모리 모듈 또는 DRAM 모듈 형태로 제공되며, 이 모듈은 일반적으로 몇 개의 껌 스틱 크기 정도이다. 이 모듈들은 손상되었거나 더 많은 저장 용량이 필요할 때 빠르게 교체할 수 있다. 또한, 작은 용량의 RAM(주로 SRAM)은 CPU나 다른 집적 회로(IC)에도 통합되어 있으며, 마더보드나 하드 드라이브, CD-ROM 등 다른 컴퓨터 시스템의 여러 부품에도 존재한다.
RAM은 운영 체제와 애플리케이션의 임시 저장소 및 작업 공간으로서의 역할 외에도 여러 가지 다른 용도로 사용된다. 예를 들어, 현대의 대부분 운영 체제는 RAM 용량을 확장하는 방법으로 "가상 메모리"를 사용한다. 컴퓨터의 하드 드라이브 일부를 페이징 파일 또는 임시 파티션으로 설정하여, 물리적 RAM과 페이징 파일의 조합이 시스템의 전체 메모리를 형성한다. 예를 들어, 컴퓨터에 2GB의 RAM과 1GB의 페이지 파일이 있을 경우, 운영 체제는 총 3GB의 메모리를 사용할 수 있다. 시스템이 물리적 메모리가 부족해지면, RAM의 일부를 페이지 파일로 "교환(swap)"하여 새로운 데이터를 저장할 공간을 마련하고, 이전에 교환된 정보를 다시 RAM으로 읽어들인다. 이 메커니즘을 과도하게 사용할 경우, 시스템 성능에 악영향을 미칠 수 있는데, 주로 하드 드라이브가 RAM보다 훨씬 느리기 때문이다.
소프트웨어는 컴퓨터의 RAM 일부를 "파티셔닝"하여 더 빠른 하드 드라이브 역할을 하는 RAM 디스크를 만들 수 있다.
RAM 디스크는 컴퓨터가 종료되면 저장된 데이터가 사라지지만, 메모리가 대기 상태에서 배터리 전원을 공급받거나, 변경된 내용이 비휘발성 디스크에 저장되면 데이터를 유지할 수 있다. RAM 디스크는 RAM 디스크 초기화 시 물리적 디스크에서 다시 로드된다.
때로는 비교적 느린 ROM 칩의 내용을 읽기/쓰기 가능한 메모리에 복사하여 접근 시간을 단축시키기도 한다. ROM 칩은 비활성화되며, 초기화된 메모리 위치는 동일한 주소 블록에서 활성화된다(대개 쓰기 보호됨) 이러한 과정은 "섀도우 RAM(shadow RAM)"이라고 불리며, 컴퓨터와 임베디드 시스템에서 자주 사용된다. 예를 들어, 일반적인 개인용 컴퓨터에서는 BIOS에서 "섀도우 BIOS"라는 옵션이 제공된다. 이 옵션을 활성화하면, BIOS ROM에서 데이터를 사용하는 대신 DRAM 위치를 사용하게 된다(일부 시스템에서는 비디오 카드 ROM이나 다른 ROM 섹션도 섀도잉을 할 수 있다). 시스템에 따라 이 과정이 성능을 향상시킬 수 있으나, 하드웨어 호환성에 문제가 생길 수도 있다. 예를 들어, 일부 하드웨어는 섀도우 RAM을 사용할 경우 운영 체제에서 접근할 수 없게 될 수 있다. 또한, BIOS가 부팅 후 더 이상 사용되지 않거나 직접 하드웨어 접근으로 대체되는 경우에는 성능 향상이 실질적으로 없을 수도 있다. 섀도우된 ROM의 크기만큼 자유 메모리가 줄어드는 점도 고려해야 한다.
메모리 벽(memory wall)은 CPU와 메모리 응답 시간(메모리 지연 시간) 간의 속도 차이를 의미한다. 이 격차가 커지는 주된 이유 중 하나는 칩 외부와의 통신 대역폭에 제한이 있기 때문이다. 1986년부터 2000년까지 CPU 속도는 연평균 55% 향상된 반면, 메모리 응답 시간은 연평균 10% 향상에 그쳤다. 이러한 추세로 인해 메모리 지연 시간이 컴퓨터 성능의 주요 병목현상이 될 것이라고 예상되었다.
또 다른 이유는 메모리 크기의 급격한 증가 때문이다. 1980년대 PC 혁명 초기에는 1메비바이트(MiB) 미만의 RAM이 장착되었으며, 이 RAM은 종종 CPU 클록 사이클 1개로 응답할 수 있었고, 대기 상태가 필요하지 않았다. 그러나 더 큰 용량의 메모리는 같은 종류의 작은 메모리보다 본질적으로 느리다. 그 이유는 더 큰 회로를 통해 신호가 전파되기까지 더 시간이 걸리기 때문이다. 수십 기가바이트의 메모리 유닛을 1 클록 사이클의 응답 시간으로 만드는 것은 매우 어렵거나 불가능하다. 오늘날의 CPU는 여전히 1메비바이트의 대기 상태가 없는 캐시 메모리를 보유하고 있지만, 이는 CPU 코어와 같은 칩에 내장되어 있으며, 칩 간 통신의 대역폭 제한 때문이기도 하다. 또한, 캐시 메모리는 정적 RAM(SRAM)으로 구성되어야 하며, 이는 동적 RAM(DRAM)보다 훨씬 비쌌고 전력을 더 많이 소모한다.
CPU 속도 향상은 물리적 한계와 CPU 설계가 이미 메모리 벽에 도달했기 때문에 크게 둔화되었다. 인텔은 2005년 문서에서 이러한 원인들을 설명했다. 첫 번째로, 칩 기하학이 축소되고 클록 주파수가 상승함에 따라 트랜지스터의 누설 전류가 증가하여 전력 소비와 열이 과도하게 발생한다. 두 번째로, 메모리 지연 시간은 증가하는 클록 주파수에 비해 개선되지 않으므로, 클록 속도가 빨라져도 메모리 접근 시간이 이를 따라잡지 못한다. 세 번째로, 특정 응용 프로그램에 대해서는 전통적인 직렬 아키텍처가 더 이상 효율적이지 않다(소위 ‘폰 노이만 병목현상’). 이로 인해 클록 주파수를 높여도 성능 향상이 제한적이다. 또한, 고체 상태 장치에서 유도성 성분을 생산하는 방법의 한계로 인해, 신호 전송에서 저항-정전용량(RC) 지연이 증가하며, 이는 클록 주파수를 높여도 해결되지 않는 또 다른 병목 현상이 된다.
RC 지연은 "클록 주파수 대 IPC: 전통적인 마이크로아키텍처의 끝"이라는 보고서에서도 언급되었으며, 2000년부터 2014년까지 CPU 성능 향상이 연평균 12.5%로 제한될 것이라고 예측했다.
다른 해결책으로는 3D 집적 회로를 사용해 프로세서와 메모리 간의 거리를 줄이는 방법이 있다. 이러한 방식은 2D 칩에서 더 멀리 떨어져 있는 논리와 메모리 부분 간의 성능 격차를 해소할 수 있다. 메모리 서브시스템 설계는 이 격차를 좁히는 데 중점을 두어야 하며, 이는 시간이 지나면서 더욱 커진다. 이를 해결하는 주요 방법은 캐시를 사용하는 것이다. 캐시는 작은 용량의 고속 메모리로 최근의 연산과 명령을 프로세서 가까이에 배치하여 자주 호출되는 연산이나 명령을 빠르게 처리할 수 있도록 한다. 여러 레벨의 캐시가 개발되어 성능을 향상시켰으며, 고속 현대 컴퓨터의 성능은 이러한 캐시 기법의 발전에 크게 의존한다. CPU와 메인 메모리 간의 성능 차이는 최대 53%까지 벌어질 수 있다.
SSD(솔리드 스테이트 드라이브)는 2012년 SATA3에서 약 400MB/s였던 속도에서 2024년에는 NVMe/PCIe로 약 7GB/s로 속도가 향상되어, RAM과 하드 디스크 간의 속도 차이를 좁혔다. 그럼에도 불구하고 RAM은 여전히 한 차례 빠르며, 단일 DDR5 8000MHz는 128GB/s의 속도를 지원하고, 현대의 GDDR은 더욱 빠르다. 빠르고 저렴한 비휘발성 SSD는 이전에 RAM이 수행하던 일부 기능을 대체하고 있다. 예를 들어, 서버 팜에서는 1TB SSD 저장 장치가 200달러에 구매 가능하지만, 1TB RAM은 수천 달러가 들기 때문에, 일부 데이터를 즉시 사용할 수 있도록 SSD를 활용하는 것이 일반적이다.
'Computer > RAM' 카테고리의 다른 글
동적 랜덤 액세스 메모리 [DRAM (Dynamic random-access memory)] (0) | 2025.01.14 |
---|---|
정적 랜덤 액세스 메모리 [SRAM (Static random-access memory) / 1963 ~ ] (0) | 2025.01.13 |
바이폴라 CMOS [BiCMOS] (0) | 2025.01.12 |
금속-산화물-반도체 전계 효과 트랜지스터 [MOSFET / 1925 ~ ] (0) | 2025.01.11 |
바이폴라 접합 트랜지스터 [Bipolar junction transistor / December 1947] (0) | 2025.01.09 |