주기억 장치의 구조와 기능
목차
주기억 장치 개요
주기억 장치(메인메모리)는 컴퓨터의 중앙처리장치(CPU)와 밀접하게 작용하여 실행 중인 프로그램의 명령어와 데이터를 임시 저장하는 저장장치다. IBM에 따르면 주기억장치는 컴퓨터 보드 위에 위치하며, 동작 중 활용되는 프로그램, 데이터 및 명령어를 저장하는 공간이다 (www.ibm.com). CPU는 산술·논리 연산을 수행할 때 필요한 코드를 주기억장치에서 읽어 들이고, 결과 역시 주기억장치에 기록한다. 비유하면 CPU를 요리사에, 주기억장치를 요리할 재료를 두는 작업대에 비유할 수 있다. 요리사는 필요할 때 즉시 재료를 집어 쓸 수 있어야 하듯, CPU도 주기억장치에서 데이터를 빠르게 입출력한다.
주기억장치는 휘발성 메모리(volatile memory)로, 전원이 공급되는 동안에만 내용이 유지된다. 즉, 전원이 차단되면 저장된 데이터가 사라진다 (www.techtarget.com). 그 대신 CPU에 매우 가까이 배치되어 빠른 접근 속도를 자랑한다. IBM은 이러한 특성 때문에 주기억장치가 보조기억장치보다 훨씬 빠른 성능으로 설계되었다고 밝힌다 (www.ibm.com). 실제로 주기억장치에 저장된 데이터는 보조기억장치보다 나노초 단위로 읽고 쓸 수 있지만, 용량은 상대적으로 작다. IBM에 따르면 최신 PC의 경우 수기가바이트(GB) 단위의 RAM을 장착하지만, 이 용량도 외부 저장소에 비하면 작기 때문에 보조기억장치와 협력하여 사용된다 (www.ibm.com) (www.ibm.com).
주기억장치는 CPU가 필요한 데이터를 실시간으로 저장하고 꺼내 쓰는 역할을 한다. 예를 들어, 프로그램 코드나 연산 중간 결과, 즉시 쓰일 변수 등이 모두 주기억장치에 머문다. 이 때문에 주기억장치의 용량이 많을수록 컴퓨터는 한 번에 수행할 수 있는 작업의 규모가 커진다. 반대로 용량이 부족하면 필요할 때마다 디스크를 참조해야 하므로 성능이 떨어진다.
주기억 장치의 역사
컴퓨터 역사 초기부터 주기억장치 기술은 크게 발전해왔다. 1940~50년대에 등장한 초기 전자 계산기는 진공관이나 전기 기계식 기억(계수기) 등을 이용해 데이터를 저장했다. 이후 1950년대 후반부터는 페르세우스 윌리엄스(Persewess Williams)의 윌리엄스관, 셀렉트론관 등 음극선관(CRT) 메모리와 코어 메모리(자기 코어)가 개발되며 용량과 속도가 획기적으로 늘어났다. 특히 자기 코어 메모리는 1947년 개발된 이후 1955~1975년경까지 약 20년간 RAM의 주력으로 사용되었다 (wikipredia.net) (www.mbaknol.com). 각 코어는 작은 페라이트 고리를 사용하여 1비트를 저장했는데, 전원이 꺼져도 데이터가 유지되는 특성이 있었다.
1970년대에 이르러 반도체 메모리 칩이 본격 도입되면서 주기억장치 혁신이 일어났다. 1970년 Intel 1103 칩이 최초의 상업용 DRAM(Dynamic RAM)으로 출시되었고, 이후 DRAM과 SRAM(Static RAM) 같은 집적회로 메모리가 빠르게 보급되었다. IBM에서도 DRAM이 단순하고 높은 집적도를 제공하여 대부분의 컴퓨터 주기억장치에 활용되었다고 설명한다 (www.ibm.com). 이후 메모리 공정 미세화와 전력관리 기술이 발전하면서 메가바이트에서 기가바이트까지 용량이 폭발적으로 증가했고, 오늘날에는 DDR4/DDR5 같은 고속 DRAM이 표준으로 자리 잡았다.
한편 SRAM은 CPU 캐시나 레지스터처럼 속도가 중요한 영역에 사용되고, 플래시 메모리(NAND/NOR Flash)와 같은 비휘발성 메모리는 SSD나 USB 드라이브, 펌웨어 저장 등에 응용되었다 (www.ibm.com). 이런 발전 과정은 반도체 소자의 성능 향상에 힘입은 것으로, 현대의 주기억장치는 과거에 비해 훨씬 작고 빠른 반도체 칩 형태로 구현되어 있다.
메모리 종류와 특성
컴퓨터 시스템의 메모리는 휘발성 메모리와 비휘발성 메모리, 그리고 이 중간 성격인 준휘발성 메모리로 구분할 수 있다.
휘발성 메모리: 특징 및 용도
휘발성 메모리는 전원이 꺼지면 저장된 데이터가 소멸되는 특징이 있다 (www.techtarget.com). 대표적으로 DRAM(동적 RAM)과 SRAM(정적 RAM)이 있다. DRAM은 1비트 셀당 1개의 트랜지스터와 1개의 커패시터로 구성되며, 각 셀에 전하(charge)가 담겨 데이터로 저장된다 (truenano.com). 전하가 시간이 지나면 누설되기 때문에 주기적인 리프레시(refresh) 동작이 필요하다. 그럼에도 불구하고 DRAM은 회로가 비교적 간단하고 고밀도로 집적할 수 있어 현재 대부분의 주기억장치에 사용된다 (www.ibm.com).
반면 SRAM은 6개의 트랜지스터로 구성된 플립플롭 구조를 사용한다 (truenano.com). DRAM보다 복잡하지만 데이터 보존에 리프레시가 필요 없고 읽기·쓰기 속도가 빠르다. 이 때문에 CPU 캐시나 레지스터 같은 초고속 기억소자로 활용된다 (www.ibm.com). IBM 자료에 따르면 SRAM은 휘발성이라 전원 차단 시 데이터가 사라지지만 DRAM 보다 빠르기 때문에 고속 캐시 메모리에 적합하다고 설명한다 (www.ibm.com).
휘발성 메모리는 속도가 빠르고 접근이 자유롭다는 장점이 있지만, 무작위적인 데이터 접근 시 전력이 필요하다는 단점이 있다. 일반적으로 프로그램 실행 중 필요한 작업 데이터를 메인메모리(RAM)에 올려두며, 연산이 끝나거나 전원이 꺼지면 해당 데이터는 보조기억장치에 쓰여 보존된다.
비휘발성 메모리와 준휘발성 메모리의 차이
비휘발성 메모리(NVM)는 전원이 꺼져도 데이터를 유지하는 저장 매체다 (www.techtarget.com). 예를 들면 ROM(Read-Only Memory), 플래시 메모리(NAND/NOR Flash), 하드디스크(HDD), 솔리드스테이트 드라이브(SSD) 등이 있다. 이들 매체는 휘발성 메모리에 비해 속도는 느리지만, 꺼진 상태에서도 저장 내용을 그대로 유지하기 때문에 운영체제나 긴급 부팅 프로그램(펌웨어), 사용자 파일 등을 영구 보관하는 데 쓰인다. IBM 문서에서는 외부 저장장치(보조기억장치)를 “External memory”라고 지칭하며 비휘발성 저장(영구 저장)을 제공한다고 밝히고 있다 (www.ibm.com).
한편, 준휘발성 메모리는 완전한 비휘발성은 아니지만 전원이 끊겨도 비교적 긴 시간 데이터를 보존할 수 있는 메모리를 말한다. 예를 들어, 배터리 백업을 활용한 RAM, 강유전체 메모리(FeRAM), 자기저항 메모리(MRAM), 상변화 메모리(Phase-change memory) 등 일부 신기술이 이에 속한다. 이들은 비휘발성 메모리보다 전력 소모가 적거나 응답 속도가 빠르고, 휘발성 메모리처럼 빠른 읽기/쓰기가 가능해 미래의 저장 매체로 각광받고 있다. 다만 진정한 영구 저장은 아니므로, 장기간의 데이터 보관은 여전히 SSD나 HDD 같은 비휘발성 장치가 사용된다.
메모리 관리 기법
운영체제는 물리적 주기억장치 한계를 극복하고 안정성을 확보하기 위해 다양한 메모리 관리 기술을 사용한다. 대표적인 기법으로 가상 메모리와 메모리 보호가 있다.
가상 메모리와 보호된 메모리
가상 메모리(virtual memory)는 디스크 등의 보조기억장치를 마치 주기억장치의 연장인 것처럼 활용하는 메모리 관리 기법이다 (www.techtarget.com). 프로그램을 실행할 때 필요한 코드나 데이터를 디스크에서 주기억장치로 가져와 페이징(paging)하거나 세그멘테이션(segmentation) 기법으로 관리한다. 운영체제의 메모리 관리 장치(MMU)가 논리 주소를 물리 주소로 자동 변환하며, 물리 메모리가 부족하면 사용 빈도가 낮은 페이지를 디스크로 옮겨(스왑아웃) 임시 저장한다. IBM 자료에 따르면 이 방식은 메모리 부족 상황을 해결하기 위해 하드디스크를 주기억장치의 일부로 사용하는 기법이라고 설명한다 (www.techtarget.com). 결과적으로 시스템은 실제 메모리보다 훨씬 큰 주소 공간을 갖는 것처럼 동작할 수 있으며, 사용자는 메모리 용량에 신경 쓰지 않고 프로그램을 실행할 수 있다.
메모리 보호는 서로 다른 프로세스가 할당받지 않은 메모리 영역을 침범하지 못하게 하는 안전 장치다. 운영체제는 프로세스마다 별도의 주소 공간을 부여하여 각자의 메모리를 격리한다. 예를 들어, 마이크로소프트는 각 프로세스의 메모리가 “프라이빗 가상 주소 공간”으로 암시적으로 보호된다고 밝히고, 가상 메모리 하드웨어를 이용해 메모리 보호를 제공한다 (learn.microsoft.com). 이 과정에서 실행중인 프로세스는 다른 프로세스로부터 격리되어 안정성을 높이고, 커널 메모리와 사용자 공간 메모리가 분리되어 시스템 충돌을 방지한다. 또한 메모리 페이지마다 읽기/쓰기/실행 권한을 설정하여 악성 코드나 버그로 인한 비인가 접근을 차단할 수 있다. 이러한 보호기능 덕분에 한 프로세스의 오류가 시스템 전체로 확산되는 위험을 줄인다.
메모리 버그와 관리방법
메모리 관련 버그는 프로그램 오류나 해킹 사고의 주요 원인이다. 예를 들어, 버퍼 오버플로우(buffer overflow)가 발생하면 정해진 메모리 영역을 벗어나 쓰기 위해 예기치 않은 동작이나 충돌이 일어날 수 있다. 또 메모리 누수(memory leak)는 사용한 메모리를 해제하지 않아 시스템의 가용 메모리가 점차 고갈되는 현상이다. 이런 버그를 방지하기 위해 운영체제나 프로그래밍 언어는 다양한 기법을 사용한다. 메모리 속도와 주소를 무작위로 결정하는 주소 공간 레이아웃 랜덤화(ASLR)를 통해 공격을 어렵게 만들고, 프로그래밍 언어 차원에서는 가비지 컬렉터(예: 자바, C#)나 스마트 포인터(예: C++), 안전 포인터 언어(예: Rust)로 메모리 관리를 돕는다. 또한 동적 분석 도구(Valgrind, AddressSanitizer 등)로 런타임 중 누수나 오버플로우를 검출하고, 메모리 접근 오류가 감지되면 운영체제는 해당 프로세스를 중단시켜 시스템 장애를 막는다. 이처럼 메모리 관리 기법은 안정성과 보안을 위해 필수적인 요소다.
MOS 메모리 기술
주기억장치를 구현하기 위해서는 반도체 메모리 회로가 필요하다. 현대 메모리 칩은 MOSFET(금속-산화막-반도체 전계효과 트랜지스터)을 기반으로 한 집적회로로, 매우 많은 트랜지스터를 고밀도로 배열하여 구성된다 (truenano.com). 메모리 칩의 기본 구조는 2차원 격자 형태의 셀 배열로 이루어져 있으며, 각 셀은 한 개의 비트를 저장한다. 셀들은 워드 라인(word line)과 비트 라인(bit line)으로 서로 연결되는데, 특정 워드 라인을 활성화하여 한 행(row)의 셀들을 선택한 후, 비트 라인 신호를 통해 데이터를 쓰거나 읽는다 (truenano.com). 읽기 시에는 비트 라인의 전압 변화를 감지(sense amplifier)해 해당 값을 파악하며, 쓰기 시에는 셀에 전하를 주입한다.
MOS 메모리는 대표적으로 SRAM과 DRAM으로 구분된다. SRAM 셀은 그림과 같은 플립플롭 구조로 6개의 MOSFET를 사용한다 (truenano.com). 이 구조에서는 전원이 켜져 있는 한 전하가 계속 유지되므로 리프레시가 필요 없다. 반면 DRAM 셀은 하나의 MOSFET과 커패시터로 구성된다 (truenano.com). DRAM 셀은 커패시터에 저장된 전하의 유무로 비트를 표현한다. 이 경우 시간이 지나면 전하가 서서히 누설되므로, 주기적인 리프레시 과정이 필수적이다. IBM 분석에 따르면 DRAM은 각 비트를 작은 커패시터에 저장하며, 리프레시로 인해 비휘발성이 되는 특성을 가진다 (www.ibm.com). DRAM의 읽기 동작은 전하를 일시적으로 방전시키는 파괴적 리드(destructive read) 방식이므로, 읽기를 마친 뒤 원래 데이터를 다시 써야 한다 (truenano.com).
모든 메모리 셀은 이러한 MOS 회로로 이뤄져 있다. 예를 들어, CPU 레지스터나 캐시에는 초고속의 태양전지 SRAM 회로가 들어가고, 메인메모리에는 고용량의 DRAM 회로가 사용된다. 최근에는 이 구조를 더욱 발전시켜 3D 적층 메모리(HBM), 파이프라인형 DDR 인터페이스, 저전력 소자 등의 기술이 적용된다. 비휘발성 메모리에도 MOSFET 구조가 활용되는데, 플래시 메모리에서는 게이트 사이에 전자를 가둬 정보를 저장하는 부동 게이트 트랜지스터를 사용한다. 이러한 MOS 메모리 기술의 발전 덕분에 메모리 용량과 접근 속도는 계속 향상되고 있다.
주요 응용 및 발전
MOS 메모리 기술은 컴퓨터 시스템 전반에 걸쳐 다양하게 응용된다. 주기억장치(메인 메모리)는 대용량 DRAM으로 구성되어 CPU의 주 작업 공간을 제공하며, 캐시 메모리는 SRAM을 이용해 CPU와 메인 메모리 사이의 속도 차이를 줄이는 역할을 한다. 그래픽 메모리(VRAM)나 네트워크 카드 메모리 등 특수 장치에도 비슷한 반도체 메모리가 사용된다. 또한 USB 플래시 드라이브, 스마트폰 내장 메모리, 디지털 카메라 등 비휘발성 플래시 메모리는 데이터 저장용으로 폭넓게 활용된다. IBM 자료에 따르면 플래시 메모리는 비휘발성이고 빠른 액세스가 가능하여 스마트폰과 사진기, USB 메모리 등에 사용된다고 한다 (www.ibm.com).
기술 발전 면에서는 DRAM과 플래시 메모리의 고도화가 두드러진다. 최근에는 DDR5, LPDDR5 같은 차세대 DRAM과, 3D NAND 플래시의 다중 레벨 셀, 높은 집적도 기술이 상용화되었다. 또한, 영구 메모리(Persistent Memory)라 불리는 휘발성과 비휘발성의 중간 영역도 연구되고 있다. 예를 들어 인텔과 마이크론의 3D XPoint 기술(Optane)처럼 전원 재가동 시에도 메모리 내용을 보존할 수 있는 기술이 부분 상용화 되었다. 앞으로도 메모리 집적도 한계를 극복하는 3D 적층 구조, 전력 소비를 줄이는 저전력 SRAM/DRAM, 보안 기능이 강화된 암호화 메모리 같은 신기술 개발이 지속될 전망이다.
주기억 장치와 보조기억 장치 관계
보조기억장치(secondary storage)는 HDD, SSD, USB 스틱 등 비교적 크고 느리지만 비휘발성인 저장 매체를 뜻한다. 주기억장치와 보조기억장치는 계층적 구조를 이루며 서로 보완적으로 작동한다. 주기억장치에 없는 정보(예: 실행할 파일의 코드나 디스크의 문서)는 보조기억장치에서 필요할 때마다 읽어들여 주기억장치에 로드된다. 역으로, 프로그램 실행 중 변경된 데이터는 다시 디스크에 기록하여 영구 보존된다.
이 과정에서 운영체제는 파일 시스템과 캐시를 활용해 효율을 높인다. 예를 들어, 디스크 I/O 시 파일 캐시를 통해 자주 쓰거나 읽는 데이터를 주기억장치에 임시 보관하여 반복 접근을 빠르게 처리한다. 또한 메모리 부족 시에는 CPU가 사용하지 않는 데이터를 디스크의 스왑 공간으로 내보내고, 필요할 때 다시 불러오는 가상 메모리 기법을 사용해 안정성을 확보한다.
IBM 문헌에 따르면 주기억장치는 컴퓨터가 동작 중에 적극 사용되는 프로그램과 데이터를 담는 반면 (www.ibm.com), 보조기억장치는 단계적으로 비휘발성 저장 기능을 수행한다 (www.ibm.com). 다시 말해, 주기억장치는 CPU가 즉각 접근할 수 있도록 빠르게 데이터에 접근 가능하여 성능을 결정짓는 반면, 보조기억장치는 전원 차단시에도 데이터를 유지하여 시스템의 장기적인 정보 보관을 담당한다 (www.ibm.com) (www.ibm.com).
보조기억장치와의 상호작용
주기억장치와 보조기억장치 간의 데이터 교환은 주로 DMA(direct memory access) 또는 CPU 개입에 의해 이루어진다. CPU는 필요한 데이터를 보조기억장치에서 불러와 주기억장치에 적재하고, 작업이 끝나면 다시 보조기억장치에 기록한다. 예를 들어, 프로그램 실행 시 운영체제는 실행 파일(ELF, PE 등)을 디스크에서 읽어 각 프로세스의 주기억장치 영역에 적재한다. 프로그램이 종료되거나 데이터를 수정하면 변경분을 디스크에 기록한다. 또한, 다수의 프로세스가 가용 메모리 이상을 요구할 경우, 운영체제는 덜 사용하는 페이지를 디스크로 스왑하여 메모리 공간을 확보한다.
일반적으로 주기억장치 접근은 몇나노초(ns) 단위인 반면, 보조기억장치 접근은 밀리초(ms) 단위의 속도를 갖는다. 이 같은 속도 차이를 줄이기 위해 컴퓨터 아키텍처에서는 레지스터 → 캐시 → 주기억장치 → 보조기억장치로 이어지는 메모리 계층 구조를 둔다. 실제로 IBM도 주기억장치가 CPU 근처에 있어 빠른 액세스를 제공한다고 설명한다 (www.ibm.com). 따라서 CPU는 대부분의 연산을 주기억장치에서 수행하며, 보조기억장치는 필요한 경우에만 접근하는 방식이다.
데이터 저장 및 접근 방식
주기억장치와 보조기억장치는 저장 방식에서도 차이가 있다. 주기억장치는 바이트 단위의 무작위 접근(random access)이 가능하여 주소만 알면 바로 해당 데이터를 읽거나 쓸 수 있다. 반면 보조기억장치는 블록 단위로 데이터를 관리하며 물리적인 헤드 이동과 회전 지연 시간이 있어 접근이 주기억장치에 비해 느리다. 예를 들어, HDD는 회전접근 시간을 수밀리초(㎳) 이상 요구하며, SSD도 전송 시스템을 거쳐야 하므로 주기억장치보다 수백 배 이상 느리다. 따라서 파일이나 데이터베이스는 보조기억장치에 저장해 두고, 작업에 필요한 부분만 주기억장치로 캐싱하여 사용한다.
또한, 보조기억장치에 저장된 데이터는 일반적으로 파일 시스템을 통해 구조화되어 관리된다. 파일 시스템은 파일의 메타정보와 블록 배치를 주기억장치에 캐시해 두며, 파일 읽기/쓰기를 효율화한다. 주기억장치는 이렇게 캐시된 데이터를 빠르게 읽고 수정한 후, 결국 보조기억장치에도 반영한다. 이처럼 주기억장치와 보조기억장치는 속도와 용량, 접근 방식에서 차이를 보이며, 상호보완적으로 작동하여 컴퓨터 시스템의 효율성과 안정성을 보장한다 (www.ibm.com) (www.ibm.com).
추가 자료 및 연구 동향
주기억장치 기술은 매년 진화하고 있으며, 다양한 연구 주제가 제기되고 있다. 예를 들어, 기존 DRAM의 발전 한계를 극복하기 위한 신메모리 소자(자기 저항 메모리, 상변화 메모리 등) 연구가 활발하다. 또한 메모리 내 연산(computing-in-memory) 기술, 3D 적층 메모리(HBM, Hybrid Memory Cube)와 같은 고대역폭 메모리, 고속 인터커넥트(Network-attached memory) 연구가 진행 중이다. 보안 측면에서는 메모리 암호화, 격리 기술 개발이 이루어지고 있다.
더 깊은 학습을 위해 다음 자료들을 참조할 수 있다. 우선 가상 메모리와 캐시, 페이징 등 운영체제 관점의 메모리 관리를 다룬 책자나 문헌이 풍부하다. 한편 MOSFET 기반 DRAM과 SRAM 회로 설계는 반도체 교재(예: Weste & Harris의 CMOS VLSI Design, Neamen의 Semiconductor Physics and Devices)를 참고하면 상세하다. 기술 동향을 보려면 IBM Think 블로그나 기술 뉴스(예: TechTarget, IEEE 논문)에서 주기억장치 및 보조기억장치의 최신 동향을 추적할 수 있다.
참고문헌
- Kirvan, P., Gillis, A. S., Peterson, S. (2025). “What is Virtual Memory?” TechTarget (2025.05.12).
- Sheldon, R. (2022). “What is Volatile Memory?” TechTarget (2022.06.03).
- Awati, R., Sliwa, C. (2024). “What is Non-volatile Memory (NVM)?” TechTarget (2024.07.16).
- IBM Corporation. (2024). “Primary storage vs. secondary storage: What’s the difference?” IBM Think (2024.09.04).
- IBM Corporation. (2024). “What is primary storage?” IBM Think (2024.08.21).
- Microsoft (2025). “Memory Protection”, Win32 apps – Microsoft Learn (2025.03.13).
- Wikipedia contributors. (2025). “Magnetic-core memory”, Wikipedia (en). ([Online] https://en.wikipedia.org/wiki/Magnetic-core_memory).
© 2025 TechMore. All rights reserved. 무단 전재 및 재배포 금지.
기사 제보
제보하실 내용이 있으시면 techmore.main@gmail.com으로 연락주세요.

